home *** CD-ROM | disk | FTP | other *** search
/ Oh!X 2000 Spring / Oh!X 2000 Spring Special CD-ROM (Japan) (Part 1).7z / Oh!X 2000 Spring Special CD-ROM (Japan) (Part 1).bin / F2JW / trans / dic.cpp < prev    next >
C/C++ Source or Header  |  1999-08-28  |  119KB  |  3,775 lines

  1.  
  2. #include "stdafx.h"
  3. #include    <string.h>
  4. #include    <ctype.h>
  5.  
  6. #include    "f2j.h"
  7. #include    "score.h"
  8. #include    "myprot.h"
  9.  
  10. // 冠詞の辞書
  11. ARTICLE    articleTable[] = {
  12.     { "l'",    "(その)", FR_PART_ARTICLE_PRONOUN,    
  13.         FR_ATTRIB_IL_ELLE,
  14.         FR_SHORT_NONE
  15.     },
  16.     {"les", "(それらの)", FR_PART_ARTICLE_PRONOUN,
  17.         FR_ATTRIB_ILS,
  18.         FR_SHORT_NONE
  19.     },
  20.     { "le",    "(その)", FR_PART_ARTICLE_PRONOUN,
  21.         FR_ATTRIB_IL,
  22.         FR_SHORT_NONE
  23.     },
  24.     { "la", "(その)", FR_PART_ARTICLE_PRONOUN,
  25.         FR_ATTRIB_ELLE,
  26.         FR_SHORT_NONE
  27.     },
  28.     {"une", "(一つの)", FR_PART_ARTICLE_INFINIT,
  29.         FR_ATTRIB_ELLE,
  30.         FR_SHORT_NONE
  31.     },
  32.     {"un",    "(一つの)", FR_PART_ARTICLE_INFINIT,
  33.         FR_ATTRIB_IL,
  34.         FR_SHORT_NONE
  35.     },
  36.     {"des", "(幾つかの)", FR_PART_ARTICLE_INFINIT,
  37.         (FR_ATTRIB)(FR_ATTRIB_BOTH_SEX | FR_ATTRIB_PLURAL | FR_ATTRIB_LEVEL3),
  38.         FR_SHORT_NONE
  39.     },
  40.     {"au", "(その)", FR_PART_ARTICLE_DEFINIT,
  41.         FR_ATTRIB_ELLE,
  42.         FR_SHORT_A
  43.     },
  44.     {"aux", "(その)", FR_PART_ARTICLE_DEFINIT,
  45.         (FR_ATTRIB)(FR_ATTRIB_BOTH_SEX | FR_ATTRIB_PLURAL | FR_ATTRIB_LEVEL3),
  46.         FR_SHORT_A
  47.     },
  48.     {"du", "(その)", FR_PART_ARTICLE_DEFINIT,
  49.         FR_ATTRIB_ELLE,
  50.         FR_SHORT_DE
  51.     },
  52.     {"de", "",         FR_PART_ARTICLE_PARTIAL,
  53.         (FR_ATTRIB)(FR_ATTRIB_BOTH_SEX | FR_ATTRIB_SINGLE | FR_ATTRIB_LEVEL3),
  54.         FR_SHORT_NONE
  55.     },
  56.     {"", "", FR_PART_NONE, FR_ATTRIB_NONE}        // End Code
  57. };
  58.  
  59. // le, laのエリジオン
  60. JP_PRONOUN    dic_L[] = {
  61. #if 0
  62.     // Il est timide: son fr}re <l'> est moins. 彼は臆病だが、弟もそれ(臆病)だ
  63.     // fr}re = Leだが、人とは限らない
  64.     JP_PRONOUN( (FR_ATTRIB)(FR_ATTRIB_ILS | FR_ATTRIB_SINGLE),    FR_ATTRIB_NONE,
  65.         JP_PROP_HUMAN,    JP_PROP_THING,
  66.         NULL,
  67.         "(彼/女)",            JP_EMPHASIS_NONE,    FR_PART_NOUN_OBJECT_D,
  68.         FR_ATTRIB_IL_ELLE,    JP_PROP_HUMAN,        JP_UNIT_HITO
  69.     ),
  70. #endif
  71.     JP_PRONOUN( (FR_ATTRIB)(FR_ATTRIB_ILS | FR_ATTRIB_SINGLE),    FR_ATTRIB_NONE,
  72.         JP_PROP_THING | JP_PROP_ACTION | JP_PROP_ABSTRACT,    JP_PROP_HUMAN,
  73.         NULL,
  74.         "それ",                JP_EMPHASIS_NONE,    FR_PART_NOUN_OBJECT_D,
  75.         FR_ATTRIB_IL_ELLE,    JP_PROP_THING,        JP_UNIT_KO
  76.     ),
  77.     JP_PRONOUN(     FR_ATTRIB_ALL,        FR_ATTRIB_MALE,
  78.         JP_PROP_ALL,        JP_PROP_NONE,
  79.         NULL,
  80.         "(彼/女/それ)",        JP_EMPHASIS_NONE,    FR_PART_NOUN_OBJECT_D,
  81.         FR_ATTRIB_IL,        JP_PROP_ALL,        JP_UNIT_KO
  82.     )
  83. };
  84.  
  85. JP_PRONOUN    dic_Les[] = {
  86.     JP_PRONOUN( FR_ATTRIB_ILS,    FR_ATTRIB_NONE,
  87.         JP_PROP_HUMAN,        JP_PROP_THING,
  88.         NULL,
  89.         "(彼/女)ら",        JP_EMPHASIS_NONE,    FR_PART_NOUN_OBJECT_D,
  90.         FR_ATTRIB_ILS,        JP_PROP_HUMAN,        JP_UNIT_HITO
  91.     ),
  92.     JP_PRONOUN( FR_ATTRIB_ILS,    FR_ATTRIB_NONE,
  93.         JP_PROP_THING,        JP_PROP_HUMAN,
  94.         NULL,
  95.         "それら",            JP_EMPHASIS_NONE,    FR_PART_NOUN_OBJECT_D,
  96.         FR_ATTRIB_ILS,        JP_PROP_THING,        JP_UNIT_KO
  97.     ),
  98.     JP_PRONOUN( FR_ATTRIB_ALL,        FR_ATTRIB_MALE,
  99.         JP_PROP_ALL,        JP_PROP_NONE,
  100.         NULL,
  101.         "(彼/女/それ)ら",    JP_EMPHASIS_NONE,    FR_PART_NOUN_OBJECT_D,
  102.         FR_ATTRIB_ILS,        JP_PROP_ALL,        JP_UNIT_KO
  103.     ),
  104. };
  105.  
  106. JP_PRONOUN    dic_Le[] = {
  107. #if 0
  108.     // Il est timide: son fr}re <l'> est moins. 彼は臆病だが、弟もそれ(臆病)だ
  109.     // fr}re = Leだが、人とは限らない
  110.     JP_PRONOUN(     FR_ATTRIB_IL,        FR_ATTRIB_NONE,
  111.         JP_PROP_HUMAN,        JP_PROP_THING | JP_PROP_ACTION | JP_PROP_ABSTRACT,
  112.         NULL,
  113.         "彼",                JP_EMPHASIS_NONE,    FR_PART_NOUN_OBJECT_D,
  114.         FR_ATTRIB_IL,        JP_PROP_HUMAN,        JP_UNIT_HITO
  115.     ),
  116. #endif
  117.     JP_PRONOUN(     FR_ATTRIB_IL,        FR_ATTRIB_NONE,
  118.         JP_PROP_THING | JP_PROP_ACTION | JP_PROP_ABSTRACT,    JP_PROP_HUMAN,
  119.         NULL,
  120.         "それ",                JP_EMPHASIS_NONE,    FR_PART_NOUN_OBJECT_D,
  121.         FR_ATTRIB_IL,        JP_PROP_THING,        JP_UNIT_KO
  122.     ),
  123.     JP_PRONOUN(     FR_ATTRIB_ALL,        FR_ATTRIB_MALE,
  124.         JP_PROP_ALL,        JP_PROP_NONE,
  125.         NULL,
  126.         "(彼/それ)",        JP_EMPHASIS_NONE,    FR_PART_NOUN_OBJECT_D,
  127.         FR_ATTRIB_IL,        JP_PROP_ALL,        JP_UNIT_KO
  128.     ),
  129. };
  130.  
  131. JP_PRONOUN    dic_La[] = {
  132.     JP_PRONOUN(     FR_ATTRIB_ELLE,        FR_ATTRIB_NONE,
  133.         JP_PROP_HUMAN,        JP_PROP_THING,
  134.         NULL,
  135.         "彼女",                JP_EMPHASIS_NONE,    FR_PART_NOUN_OBJECT_D,
  136.         FR_ATTRIB_ELLE,        JP_PROP_HUMAN,        JP_UNIT_HITO
  137.     ),
  138.     JP_PRONOUN(     FR_ATTRIB_ELLE,        FR_ATTRIB_NONE,
  139.         JP_PROP_THING,        JP_PROP_HUMAN,
  140.         NULL,
  141.         "それ",                JP_EMPHASIS_NONE,    FR_PART_NOUN_OBJECT_D,
  142.         FR_ATTRIB_ELLE,        JP_PROP_THING,        JP_UNIT_KO
  143.     ),
  144.     JP_PRONOUN(     FR_ATTRIB_ALL,        FR_ATTRIB_MALE,
  145.         JP_PROP_ALL,        JP_PROP_NONE,
  146.         NULL,
  147.         "(彼女/それ)",        JP_EMPHASIS_NONE,    FR_PART_NOUN_OBJECT_D,
  148.         FR_ATTRIB_ELLE,        JP_PROP_ALL,        JP_UNIT_KO
  149.     ),
  150. };
  151.  
  152. JP_PRONOUN    dic_JpPronoun_En[] = {
  153.     JP_PRONOUN(
  154.         FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  155.         JP_PROP_ALL,    JP_PROP_NONE,
  156.         NULL,
  157.         "いくらか",        JP_EMPHASIS_NONE,    FR_PART_NOUN_OBJECT_BOTH,
  158.         FR_ATTRIB_ILS,    JP_PROP_THING,        JP_UNIT_KO
  159.     )
  160. };
  161.  
  162.  
  163. JP_PRONOUN    dic_Je[] = {
  164.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  165.         JP_PROP_ALL,    JP_PROP_NONE,
  166.         NULL,
  167.         "私",            JP_EMPHASIS_NONE,        FR_PART_NOUN_SUBJECT,
  168.         FR_ATTRIB_JE,    JP_PROP_HUMAN,            JP_UNIT_HITO
  169.     )
  170. };
  171.  
  172. JP_PRONOUN    dic_Moi[] = {
  173.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  174.         JP_PROP_ALL,    JP_PROP_NONE,
  175.         NULL,
  176.         "私",            JP_EMPHASIS_NONE,        FR_PART_NOUN_PERSONAL,
  177.         FR_ATTRIB_JE,    JP_PROP_HUMAN,            JP_UNIT_HITO
  178.     )
  179. };
  180.  
  181. JP_PRONOUN    dic_Me[] = {
  182.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  183.         JP_PROP_ALL,    JP_PROP_NONE,
  184.         NULL,
  185.         "私",            JP_EMPHASIS_NONE,    FR_PART_NOUN_OBJECT_BOTH,
  186.         FR_ATTRIB_JE,    JP_PROP_HUMAN,        JP_UNIT_HITO
  187.     )
  188. };
  189.  
  190. JP_PRONOUN    dic_Te[] = {
  191.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  192.         JP_PROP_ALL,    JP_PROP_NONE,
  193.         NULL,
  194.         "君",            JP_EMPHASIS_NONE,    FR_PART_NOUN_OBJECT_BOTH,
  195.         FR_ATTRIB_TU,    JP_PROP_HUMAN,        JP_UNIT_HITO
  196.     )
  197. };
  198.  
  199. JP_PRONOUN    dic_Tu[] = {
  200.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  201.         JP_PROP_ALL,    JP_PROP_NONE,
  202.         NULL,
  203.         "君",            JP_EMPHASIS_NONE,    FR_PART_NOUN_SUBJECT,
  204.         FR_ATTRIB_TU,    JP_PROP_HUMAN,        JP_UNIT_HITO
  205.     )
  206. };
  207.  
  208. JP_PRONOUN    dic_Toi[] = {
  209.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  210.         JP_PROP_ALL,    JP_PROP_NONE,
  211.         NULL,
  212.         "君",            JP_EMPHASIS_NONE,    FR_PART_NOUN_PERSONAL,
  213.         FR_ATTRIB_TU,    JP_PROP_HUMAN,        JP_UNIT_HITO
  214.     )
  215. };
  216.  
  217. JP_PRONOUN    dic_Il[] = {
  218.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  219.         JP_PROP_HUMAN,    JP_PROP_THING,
  220.         NULL,
  221.         "彼",            JP_EMPHASIS_NONE,    FR_PART_NOUN_SUBJECT,
  222.         FR_ATTRIB_IL,    JP_PROP_HUMAN,        JP_UNIT_HITO
  223.     ),
  224.     JP_PRONOUN(    FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  225.         JP_PROP_THING,    JP_PROP_HUMAN,
  226.         NULL,
  227.         "それ",            JP_EMPHASIS_NONE,    FR_PART_NOUN_SUBJECT,
  228.         FR_ATTRIB_IL,    JP_PROP_THING,        JP_UNIT_KO
  229.     ),
  230.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  231.         JP_PROP_ALL,    JP_PROP_NONE,
  232.         NULL,
  233.         "(彼/それ)",    JP_EMPHASIS_NONE,    FR_PART_NOUN_SUBJECT,
  234.         FR_ATTRIB_IL,    JP_PROP_ALL,        JP_UNIT_KO
  235.     ),
  236.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  237.         JP_PROP_ALL,    JP_PROP_NONE,
  238.         NULL,
  239.         "(彼/それ)",    JP_EMPHASIS_NONE,    FR_PART_NOUN_IMPERSONAL,
  240.         FR_ATTRIB_IL,    JP_PROP_ALL,        JP_UNIT_KO
  241.     ),
  242. };
  243.  
  244. JP_PRONOUN    dic_Lui[] = {
  245.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  246.         JP_PROP_ALL,    JP_PROP_NONE,
  247.         NULL,
  248.         "(彼/女/それ)",    JP_EMPHASIS_NONE,    (FR_PART)(FR_PART_NOUN_PERSONAL | FR_PART_NOUN_OBJECT_I),
  249.         FR_ATTRIB_IL_ELLE,    JP_PROP_ALL,    JP_UNIT_HITO
  250.     )
  251. };
  252.  
  253. JP_PRONOUN    dic_Elle[] = {
  254.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  255.         JP_PROP_HUMAN,    JP_PROP_THING,
  256.         NULL,
  257.         "彼女",            JP_EMPHASIS_NONE,    (FR_PART)(FR_PART_NOUN_SUBJECT | FR_PART_NOUN_PERSONAL),
  258.         FR_ATTRIB_ELLE,    JP_PROP_HUMAN,        JP_UNIT_HITO
  259.     ),
  260.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  261.         JP_PROP_THING,    JP_PROP_HUMAN,
  262.         NULL,
  263.         "それ",            JP_EMPHASIS_NONE,    (FR_PART)(FR_PART_NOUN_SUBJECT | FR_PART_NOUN_PERSONAL),
  264.         FR_ATTRIB_ELLE,    JP_PROP_THING,        JP_UNIT_KO
  265.     ),
  266.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  267.         JP_PROP_ALL,    JP_PROP_NONE,
  268.         NULL,
  269.         "(彼女/それ)",    JP_EMPHASIS_NONE,    (FR_PART)(FR_PART_NOUN_SUBJECT | FR_PART_NOUN_PERSONAL),
  270.         FR_ATTRIB_ELLE,    JP_PROP_ALL,        JP_UNIT_KO
  271.     )
  272. };
  273.  
  274. JP_PRONOUN    dic_On[] = {
  275.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  276.         JP_PROP_ALL,    JP_PROP_NONE,
  277.         NULL,
  278.         "",                JP_EMPHASIS_NONE,    FR_PART_NOUN_IMPERSONAL,
  279.         FR_ATTRIB_IL_ELLE,JP_PROP_HUMAN,        JP_UNIT_NONE
  280.     )
  281. };
  282.  
  283. JP_PRONOUN dic_Nous[] = {
  284.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  285.         JP_PROP_ALL,    JP_PROP_NONE,
  286.         NULL,
  287.         "私達",            JP_EMPHASIS_NONE,    (FR_PART)(FR_PART_NOUN_SUBJECT | FR_PART_NOUN_PERSONAL | FR_PART_NOUN_OBJECT_D | FR_PART_NOUN_OBJECT_I),
  288.         FR_ATTRIB_NOUS,    JP_PROP_HUMAN,        JP_UNIT_HITO
  289.     )
  290. };
  291.  
  292. JP_PRONOUN    dic_Vous[] = {
  293.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  294.         JP_PROP_ALL,    JP_PROP_NONE,
  295.         NULL,
  296.         "あなた",        JP_EMPHASIS_NONE,    (FR_PART)(FR_PART_NOUN_SUBJECT | FR_PART_NOUN_PERSONAL | FR_PART_NOUN_OBJECT_D | FR_PART_NOUN_OBJECT_I),
  297.         FR_ATTRIB_VOUS,    JP_PROP_HUMAN,        JP_UNIT_HITO
  298.     )
  299. };
  300.  
  301. JP_PRONOUN    dic_Ils[] = {
  302.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  303.         JP_PROP_HUMAN,    JP_PROP_THING,
  304.         NULL,
  305.         "彼ら",            JP_EMPHASIS_NONE,    FR_PART_NOUN_SUBJECT,
  306.         FR_ATTRIB_ILS,    JP_PROP_HUMAN,        JP_UNIT_HITO
  307.     ),
  308.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  309.         JP_PROP_THING,    JP_PROP_HUMAN,
  310.         NULL,
  311.         "それら",        JP_EMPHASIS_NONE,    FR_PART_NOUN_SUBJECT,
  312.         FR_ATTRIB_ILS,    JP_PROP_THING,        JP_UNIT_KO
  313.     ),
  314.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  315.         JP_PROP_ALL,    JP_PROP_NONE,
  316.         NULL,
  317.         "(彼/それ)ら",    JP_EMPHASIS_NONE,    FR_PART_NOUN_SUBJECT,
  318.         FR_ATTRIB_ILS,    JP_PROP_ALL,        JP_UNIT_HITO
  319.     )
  320. };
  321.  
  322. JP_PRONOUN    dic_Eux[] = {
  323.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  324.         JP_PROP_HUMAN,    JP_PROP_THING,
  325.         NULL,
  326.         "彼",            JP_EMPHASIS_NONE,    FR_PART_NOUN_PERSONAL,
  327.         FR_ATTRIB_ILS,    JP_PROP_HUMAN,        JP_UNIT_HITO
  328.     ),
  329.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  330.         JP_PROP_THING,    JP_PROP_HUMAN,
  331.         NULL,
  332.         "彼",            JP_EMPHASIS_NONE,    FR_PART_NOUN_PERSONAL,
  333.         FR_ATTRIB_ILS,    JP_PROP_THING,        JP_UNIT_HITO
  334.     ),
  335.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  336.         JP_PROP_ALL,    JP_PROP_NONE,
  337.         NULL,
  338.         "(彼/それ)",    JP_EMPHASIS_NONE,    FR_PART_NOUN_PERSONAL,
  339.         FR_ATTRIB_ILS,    JP_PROP_ALL,        JP_UNIT_HITO
  340.     ),
  341. };
  342.  
  343. /*
  344. JP_PRONOUN    dic_Leur[] = {
  345.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  346.         JP_PROP_ALL,    JP_PROP_NONE,
  347.         "(彼/女/それ)",        // FR_PART_SPECIAL
  348.         JP_EMPHASIS_NONE,    FR_PART_NOUN_OBJECT,
  349.         FR_ATTRIB_ILS,        JP_PROP_ALL,    JP_UNIT_KO
  350.     ),
  351. */
  352.  
  353. JP_PRONOUN    dic_Elles[] = {
  354.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  355.         JP_PROP_HUMAN,    JP_PROP_THING,
  356.         NULL,
  357.         "彼女ら",    JP_EMPHASIS_NONE,        (FR_PART)(FR_PART_NOUN_SUBJECT | FR_PART_NOUN_PERSONAL),
  358.         FR_ATTRIB_ELLES,JP_PROP_HUMAN,        JP_UNIT_HITO
  359.     ),
  360.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  361.         JP_PROP_THING,    JP_PROP_HUMAN,
  362.         NULL,
  363.         "それら",        JP_EMPHASIS_NONE,    (FR_PART)(FR_PART_NOUN_SUBJECT | FR_PART_NOUN_PERSONAL),
  364.         FR_ATTRIB_ELLES,JP_PROP_THING,        JP_UNIT_KO
  365.     ),
  366.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  367.         JP_PROP_ALL,    JP_PROP_NONE,
  368.         NULL,
  369.         "(彼女/それ)ら",JP_EMPHASIS_NONE,    (FR_PART)(FR_PART_NOUN_SUBJECT | FR_PART_NOUN_PERSONAL),
  370.         FR_ATTRIB_ELLES,JP_PROP_ALL,        JP_UNIT_KO
  371.     ),
  372. };
  373.  
  374. JP_PRONOUN    dic_Se[] = {
  375.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  376.         JP_PROP_HUMAN,    JP_PROP_THING,
  377.         NULL,
  378.          "(彼/女)",JP_EMPHASIS_NONE,        (FR_PART)(FR_PART_NOUN_RECURSIVE | FR_PART_NOUN_OBJECT_D | FR_PART_NOUN_OBJECT_I),
  379.         (FR_ATTRIB)(FR_ATTRIB_IL_ELLE | FR_ATTRIB_PLURAL),
  380.         JP_PROP_ALL,        JP_UNIT_KO
  381.     ),
  382.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  383.         JP_PROP_THING,    JP_PROP_HUMAN,
  384.         NULL,
  385.          "それ",        JP_EMPHASIS_NONE,    (FR_PART)(FR_PART_NOUN_RECURSIVE | FR_PART_NOUN_OBJECT_D | FR_PART_NOUN_OBJECT_I),
  386.         (FR_ATTRIB)(FR_ATTRIB_IL_ELLE | FR_ATTRIB_PLURAL),
  387.         JP_PROP_ALL,        JP_UNIT_KO
  388.     ),
  389.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  390.         JP_PROP_ALL,    JP_PROP_NONE,
  391.         NULL,
  392.          "(彼/女/それ)",JP_EMPHASIS_NONE,    (FR_PART)(FR_PART_NOUN_RECURSIVE | FR_PART_NOUN_OBJECT_D | FR_PART_NOUN_OBJECT_I),
  393.         (FR_ATTRIB)(FR_ATTRIB_IL_ELLE | FR_ATTRIB_PLURAL),
  394.         JP_PROP_ALL,    JP_UNIT_KO
  395.     )
  396. };
  397.  
  398. static JP_PRONOUN    dic_Chacun[] = {
  399.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  400.         JP_PROP_HUMAN,    JP_PROP_NONE,
  401.         NULL,
  402.         "各人",        JP_EMPHASIS_NONE,
  403.         FR_PART_NOUN_INDEFINIT,
  404.         FR_ATTRIB_IL,
  405.         JP_PROP_HUMAN,
  406.         JP_UNIT_NONE
  407.     ),
  408.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  409.         JP_PROP_ALL,    JP_PROP_NONE,
  410.         NULL,
  411.         "それぞれ",        JP_EMPHASIS_NONE,
  412.         FR_PART_NOUN_INDEFINIT,
  413.         FR_ATTRIB_IL,
  414.         JP_PROP_ALL,
  415.         JP_UNIT_NONE
  416.     )
  417. };
  418.  
  419. static JP_PRONOUN    dic_Chacune[] = {
  420.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  421.         JP_PROP_HUMAN,    JP_PROP_NONE,
  422.         NULL,
  423.         "各人",            JP_EMPHASIS_NONE,
  424.         FR_PART_NOUN_INDEFINIT,
  425.         FR_ATTRIB_ELLE,
  426.         JP_PROP_HUMAN,
  427.         JP_UNIT_NONE
  428.     ),
  429.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  430.         JP_PROP_ALL,    JP_PROP_NONE,
  431.         NULL,
  432.         "それぞれ",        JP_EMPHASIS_NONE,
  433.         FR_PART_NOUN_INDEFINIT,
  434.         FR_ATTRIB_ELLE,
  435.         JP_PROP_ALL,
  436.         JP_UNIT_NONE
  437.     )
  438. };
  439.  
  440. JP_PRONOUN    dic_Autre[] = {
  441.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  442.         JP_PROP_HUMAN,    JP_PROP_THING,
  443.         NULL,
  444.         "他の人",             JP_EMPHASIS_NONE,    FR_PART_NOUN_INDEFINIT,
  445.         FR_ATTRIB_IL_ELLE,    JP_PROP_HUMAN,        JP_UNIT_HITO
  446.     ),
  447.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  448.         JP_PROP_THING,    JP_PROP_HUMAN,
  449.         NULL,
  450.         "他の事",            JP_EMPHASIS_NONE,    FR_PART_NOUN_INDEFINIT,
  451.         FR_ATTRIB_IL_ELLE,    JP_PROP_THING,        JP_UNIT_KO
  452.     ),
  453.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  454.         JP_PROP_ALL,    JP_PROP_NONE,
  455.         NULL,
  456.         "他の人/事",         JP_EMPHASIS_NONE,    FR_PART_NOUN_INDEFINIT,
  457.         FR_ATTRIB_IL_ELLE,    JP_PROP_ALL,        JP_UNIT_KO
  458.     )
  459. };
  460.  
  461. JP_PRONOUN    dic_Autres[] = {
  462.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  463.         JP_PROP_HUMAN,    JP_PROP_THING,
  464.         NULL,
  465.         "他の人",             JP_EMPHASIS_NONE,    FR_PART_NOUN_INDEFINIT,
  466.         FR_ATTRIB_ILS,        JP_PROP_HUMAN,        JP_UNIT_HITO
  467.     ),
  468.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  469.         JP_PROP_THING,    JP_PROP_HUMAN,
  470.         NULL,
  471.         "他の事",             JP_EMPHASIS_NONE,    FR_PART_NOUN_INDEFINIT,
  472.         FR_ATTRIB_ILS,        JP_PROP_THING,        JP_UNIT_KO
  473.     ),
  474.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  475.         JP_PROP_ALL,    JP_PROP_NONE,
  476.         NULL,
  477.         "他の人/事",         JP_EMPHASIS_NONE,    FR_PART_NOUN_INDEFINIT,
  478.         FR_ATTRIB_ILS,        JP_PROP_ALL,        JP_UNIT_KO
  479.     )
  480. };
  481.  
  482. JP_PRONOUN    dic_Ce[] = {
  483.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  484.         JP_PROP_ALL,    JP_PROP_NONE,
  485.         HasQue,
  486.         "事",             JP_EMPHASIS_NONE,    (FR_PART)(FR_PART_NOUN_SUBJECT | FR_PART_NOUN_IMPERSONAL),
  487.         FR_ATTRIB_IL_ELLE,    JP_PROP_ALL,    JP_UNIT_NONE
  488.     ),
  489.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  490.         JP_PROP_ALL,    JP_PROP_NONE,
  491.         HasQui,
  492.         "物",             JP_EMPHASIS_NONE,    (FR_PART)(FR_PART_NOUN_SUBJECT | FR_PART_NOUN_IMPERSONAL),
  493.         FR_ATTRIB_IL_ELLE,    JP_PROP_ALL,    JP_UNIT_NONE
  494.     ),
  495.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  496.         JP_PROP_ALL,    JP_PROP_NONE,
  497.         NULL,
  498.         "それ",             JP_EMPHASIS_NONE,    (FR_PART)(FR_PART_NOUN_SUBJECT | FR_PART_NOUN_IMPERSONAL),
  499.         FR_ATTRIB_IL_ELLE,    JP_PROP_ALL,    JP_UNIT_KO
  500.     )
  501. };
  502.  
  503. JP_PRONOUN    dic_Ca[] = {
  504.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  505.         JP_PROP_ALL,    JP_PROP_NONE,
  506.         NULL,
  507.         "それ",            JP_EMPHASIS_NONE,
  508.         (FR_PART)(FR_PART_NOUN_PERSONAL | FR_PART_NOUN_IMPERSONAL),
  509.         (FR_ATTRIB)(FR_ATTRIB_IL_ELLE | FR_ATTRIB_PLURAL),
  510.         (JP_PROP)(JP_PROP_THING | JP_PROP_ABSTRACT),    JP_UNIT_NONE
  511.     ),
  512. };
  513.  
  514. JP_PRONOUN    dic_Cela[] = {
  515.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  516.         JP_PROP_ALL,    JP_PROP_NONE,
  517.         NULL,
  518.         "あれ",            JP_EMPHASIS_NONE,
  519.         (FR_PART)(FR_PART_NOUN_PERSONAL | FR_PART_NOUN_DEMONSTRATIVE),
  520.         (FR_ATTRIB)(FR_ATTRIB_IL_ELLE | FR_ATTRIB_PLURAL),
  521.         JP_PROP_THING | JP_PROP_ABSTRACT,    JP_UNIT_NONE
  522.     )
  523. };
  524.  
  525. JP_PRONOUN    dic_Ceci[] = {
  526.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  527.         JP_PROP_ALL,    JP_PROP_NONE,
  528.         NULL,
  529.         "これ",            JP_EMPHASIS_NONE,
  530.         (FR_PART)(FR_PART_NOUN_PERSONAL | FR_PART_NOUN_DEMONSTRATIVE),
  531.         (FR_ATTRIB)(FR_ATTRIB_IL_ELLE | FR_ATTRIB_PLURAL),
  532.         (JP_PROP)(JP_PROP_THING | JP_PROP_ABSTRACT),    JP_UNIT_NONE
  533.     )
  534. };
  535.  
  536. JP_PRONOUN    dic_Celui[] = {
  537.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  538.         JP_PROP_HUMAN,    JP_PROP_THING,
  539.         NULL,
  540.         "人",            JP_EMPHASIS_NONE,    FR_PART_NOUN_DEMONSTRATIVE,
  541.         FR_ATTRIB_IL,    JP_PROP_ALL,    JP_UNIT_NONE
  542.     ),
  543.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  544.         JP_PROP_ALL,    JP_PROP_NONE,
  545.         NULL,
  546.         "もの",            JP_EMPHASIS_NONE,    FR_PART_NOUN_DEMONSTRATIVE,
  547.         FR_ATTRIB_IL,    JP_PROP_ALL,    JP_UNIT_NONE
  548.     )
  549. };
  550.  
  551. JP_PRONOUN    dic_Celle[] = {
  552.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  553.         JP_PROP_HUMAN,    JP_PROP_THING,
  554.         NULL,
  555.         "人",            JP_EMPHASIS_NONE,    FR_PART_NOUN_DEMONSTRATIVE,
  556.         FR_ATTRIB_ELLE,    JP_PROP_ALL,    JP_UNIT_NONE
  557.     ),
  558.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  559.         JP_PROP_ALL,    JP_PROP_NONE,
  560.         NULL,
  561.         "もの",            JP_EMPHASIS_NONE,    FR_PART_NOUN_DEMONSTRATIVE,
  562.         FR_ATTRIB_ELLE,    JP_PROP_ALL,    JP_UNIT_NONE
  563.     )
  564. };
  565.  
  566. JP_PRONOUN    dic_Ceux[] = {
  567.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  568.         JP_PROP_HUMAN,    JP_PROP_THING,
  569.         NULL,
  570.         "人",            JP_EMPHASIS_NONE,    FR_PART_NOUN_DEMONSTRATIVE,
  571.         FR_ATTRIB_ELLES,JP_PROP_ALL,    JP_UNIT_NONE
  572.     ),
  573.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  574.         JP_PROP_ALL,    JP_PROP_NONE,
  575.         NULL,
  576.         "もの",            JP_EMPHASIS_NONE,    FR_PART_NOUN_DEMONSTRATIVE,
  577.         FR_ATTRIB_ELLES,JP_PROP_ALL,    JP_UNIT_NONE
  578.     )
  579. };
  580.  
  581. JP_PRONOUN    dic_Celles[] = {
  582.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  583.         JP_PROP_ALL,    JP_PROP_THING,
  584.         NULL,
  585.         "それ",            JP_EMPHASIS_NONE,    FR_PART_NOUN_DEMONSTRATIVE,
  586.         FR_ATTRIB_ELLES,JP_PROP_ALL,    JP_UNIT_NONE
  587.     )
  588. };
  589.  
  590. static JP_PRONOUN    dic_Personne[] = {
  591.         // personne de bless{. 怪我をした誰もいない ->怪我をした人は誰もいない
  592.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  593.         JP_PROP_ALL,    JP_PROP_NONE,
  594.         IsTokenRootWChild,
  595.         "人は誰もいない",        JP_EMPHASIS_NONE,        FR_PART_NOUN_INDEFINIT,
  596.         FR_ATTRIB_IL_ELLE,
  597.         (JP_PROP)(JP_PROP_HUMAN | JP_PROP_NEGATIVE),
  598.         JP_UNIT_HITO
  599.     ),
  600.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  601.         JP_PROP_ALL,    JP_PROP_NONE,
  602.         IsTokenRoot,
  603.         "誰もいない",        JP_EMPHASIS_NONE,        FR_PART_NOUN_INDEFINIT,
  604.         FR_ATTRIB_IL_ELLE,
  605.         (JP_PROP)(JP_PROP_HUMAN | JP_PROP_NEGATIVE),
  606.         JP_UNIT_HITO
  607.     ),
  608.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  609.         JP_PROP_ALL,    JP_PROP_NONE,
  610.         NULL,
  611.         "誰",            JP_EMPHASIS_MO,        FR_PART_NOUN_INDEFINIT,
  612.         FR_ATTRIB_IL_ELLE,
  613.         (JP_PROP)(JP_PROP_HUMAN | JP_PROP_NEGATIVE),
  614.         JP_UNIT_HITO
  615.     )
  616. };
  617.  
  618.  
  619. static JP_PRONOUN    dic_Quelqun[] = {
  620.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  621.         JP_PROP_ALL,    JP_PROP_NONE,
  622.         HasChildAdjective,        // 怪我をした誰か -> 怪我をした人
  623.         "人",            JP_EMPHASIS_NONE,        FR_PART_NOUN_INDEFINIT,
  624.         FR_ATTRIB_IL_ELLE,
  625.         JP_PROP_HUMAN,
  626.         JP_UNIT_HITO
  627.     ),
  628.     // Quelqu'un a frapp{ @ porte. -> <誰かが>ドアをノックした。
  629.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  630.         JP_PROP_ALL,    JP_PROP_NONE,
  631.         NULL,
  632.         "誰か",            JP_EMPHASIS_GA,        FR_PART_NOUN_INDEFINIT,
  633.         FR_ATTRIB_IL_ELLE,
  634.         JP_PROP_HUMAN,
  635.         JP_UNIT_HITO
  636.     ),
  637.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  638.         JP_PROP_ALL,    JP_PROP_NONE,
  639.         NULL,
  640.         "誰",            JP_EMPHASIS_NONE,        FR_PART_NOUN_INDEFINIT,
  641.         FR_ATTRIB_IL_ELLE,
  642.         JP_PROP_HUMAN,
  643.         JP_UNIT_HITO
  644.     )
  645. };
  646.  
  647. static JP_PRONOUN    dic_Rien[] = {
  648.     JP_PRONOUN( FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  649.         JP_PROP_ALL,    JP_PROP_NONE,
  650.         IsTokenRoot,
  651.         "何もない",        JP_EMPHASIS_NONE,        FR_PART_NOUN_INDEFINIT,
  652.         FR_ATTRIB_IL_ELLE,
  653.         JP_PROP_THING | JP_PROP_NEGATIVE,
  654.         JP_UNIT_HITO
  655.     ),
  656.     // Il n'y a rien d'int{ressant. 面白いものは<なにも>ない
  657.     JP_PRONOUN( FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  658.         JP_PROP_ALL,    JP_PROP_NONE,
  659.         HasAdjective,
  660.         "ものは何",        JP_EMPHASIS_MO,        FR_PART_NOUN_INDEFINIT,
  661.         FR_ATTRIB_IL_ELLE,
  662.         JP_PROP_THING | JP_PROP_NEGATIVE,
  663.         JP_UNIT_HITO
  664.     ),
  665.     JP_PRONOUN( FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  666.         JP_PROP_ALL,    JP_PROP_NONE,
  667.         NULL,
  668.         "何",            JP_EMPHASIS_MO,        FR_PART_NOUN_INDEFINIT,
  669.         FR_ATTRIB_IL_ELLE,
  670.         JP_PROP_THING | JP_PROP_NEGATIVE,
  671.         JP_UNIT_NONE
  672.     )
  673. };
  674.  
  675. JP_PRONOUN    dic_Dont[] = {
  676.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  677.         JP_PROP_ALL,    JP_PROP_NONE,
  678.         NULL,
  679.         "",                JP_EMPHASIS_NONE,    FR_PART_RELATIVE_OBJECT_N,
  680.         FR_ATTRIB_ALL,    JP_PROP_ALL,        JP_UNIT_NONE
  681.     )
  682. };
  683.  
  684. JP_PRONOUN    dic_Miens[] = {
  685.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  686.         JP_PROP_ALL,    JP_PROP_NONE,
  687.         NULL,
  688.         "私のもの",        JP_EMPHASIS_NONE,    FR_PART_NOUN_POSSESIVE,
  689.         FR_ATTRIB_ILS,    JP_PROP_ALL,    JP_UNIT_NONE
  690.     )
  691. };
  692.  
  693. JP_PRONOUN    dic_Mien[] = {
  694.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  695.         JP_PROP_ALL,    JP_PROP_NONE,
  696.         NULL,
  697.         "私のもの",        JP_EMPHASIS_NONE,    FR_PART_NOUN_POSSESIVE,
  698.         FR_ATTRIB_IL,    JP_PROP_ALL,        JP_UNIT_NONE
  699.     )
  700. };
  701.  
  702. JP_PRONOUN    dic_Miennes[] = {
  703.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  704.         JP_PROP_ALL,    JP_PROP_NONE,
  705.         NULL,
  706.         "私のもの",        JP_EMPHASIS_NONE,    FR_PART_NOUN_POSSESIVE,
  707.         FR_ATTRIB_ELLES,JP_PROP_ALL,        JP_UNIT_NONE
  708.     )
  709. };
  710.  
  711. JP_PRONOUN    dic_Mienne[] = {
  712.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  713.         JP_PROP_ALL,    JP_PROP_NONE,
  714.         NULL,
  715.         "私のもの",        JP_EMPHASIS_NONE,    FR_PART_NOUN_POSSESIVE,
  716.         FR_ATTRIB_ELLE,    JP_PROP_ALL,    JP_UNIT_NONE
  717.     )
  718. };
  719.  
  720. JP_PRONOUN    dic_Tiens[] = {
  721.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  722.         JP_PROP_ALL,    JP_PROP_NONE,
  723.         NULL,
  724.         "君のもの",        JP_EMPHASIS_NONE,    FR_PART_NOUN_POSSESIVE,
  725.         FR_ATTRIB_ILS,    JP_PROP_ALL,    JP_UNIT_NONE
  726.     )
  727. };
  728.  
  729. JP_PRONOUN    dic_Tien[] = {
  730.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  731.         JP_PROP_ALL,    JP_PROP_NONE,
  732.         NULL,
  733.         "君のもの",    JP_EMPHASIS_NONE,    FR_PART_NOUN_POSSESIVE,
  734.         FR_ATTRIB_IL,    JP_PROP_ALL,        JP_UNIT_NONE
  735.     )
  736. };
  737.  
  738. JP_PRONOUN    dic_Tiennes[] = {
  739.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  740.         JP_PROP_ALL,    JP_PROP_NONE,
  741.         NULL,
  742.         "君のもの",        JP_EMPHASIS_NONE,FR_PART_NOUN_POSSESIVE,
  743.         FR_ATTRIB_ELLES,JP_PROP_ALL,    JP_UNIT_NONE
  744.     )
  745. };
  746.  
  747. JP_PRONOUN    dic_Tienne[] = {
  748.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  749.         JP_PROP_ALL,    JP_PROP_NONE,
  750.         NULL,
  751.         "君のもの",        JP_EMPHASIS_NONE,FR_PART_NOUN_POSSESIVE,
  752.         FR_ATTRIB_ELLE,    JP_PROP_ALL,    JP_UNIT_NONE
  753.     )
  754. };
  755.  
  756. static    JP_PRONOUN    dic_Meme[] = {
  757.     JP_PRONOUN( FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  758.         JP_PROP_HUMAN,    JP_PROP_THING,
  759.         NULL,
  760.         "同じ人",        JP_EMPHASIS_NONE,
  761.         FR_PART_NOUN_INDEFINIT,
  762.         FR_ATTRIB_IL_ELLE,
  763.         JP_PROP_HUMAN,
  764.         JP_UNIT_NONE
  765.     ),
  766.     JP_PRONOUN( FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  767.         JP_PROP_THING,    JP_PROP_HUMAN,
  768.         NULL,
  769.         "同じ事",        JP_EMPHASIS_NONE,
  770.         FR_PART_NOUN_INDEFINIT,
  771.         FR_ATTRIB_IL_ELLE,
  772.         JP_PROP_THING,
  773.         JP_UNIT_NONE
  774.     ),
  775.     JP_PRONOUN( FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  776.         JP_PROP_ALL,    JP_PROP_NONE,
  777.         NULL,
  778.         "同じ事/人",    JP_EMPHASIS_NONE,
  779.         FR_PART_NOUN_INDEFINIT,
  780.         FR_ATTRIB_IL_ELLE,
  781.         JP_PROP_THING,
  782.         JP_UNIT_NONE
  783.     )
  784. };
  785.  
  786. static JP_PRONOUN    dic_Tous[] = {
  787.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  788.         JP_PROP_HUMAN,    JP_PROP_NONE,
  789.         NULL,
  790.         "全員",            JP_EMPHASIS_NONE,
  791.         FR_PART_NOUN_INDEFINIT,
  792.         FR_ATTRIB_IL_ELLE,
  793.         JP_PROP_HUMAN,
  794.         JP_UNIT_NONE
  795.     ),
  796.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  797.         JP_PROP_ALL,    JP_PROP_NONE,
  798.         NULL,
  799.         "全て",            JP_EMPHASIS_NONE,
  800.         FR_PART_NOUN_INDEFINIT,
  801.         FR_ATTRIB_IL_ELLE,
  802.         JP_PROP_THING,
  803.         JP_UNIT_NONE
  804.     )
  805. };
  806.  
  807. static JP_PRONOUN    dic_Tout[] = {
  808.     JP_PRONOUN( FR_ATTRIB_ALL,    FR_ATTRIB_NONE,    // tout le {t{ -> その夏の間じゅう
  809.         JP_PROP_ALL,    JP_PROP_NONE,
  810.         HasChildNounTime,
  811.         "の間じゅう",    JP_EMPHASIS_NONE,
  812.         FR_PART_NOUN_INDEFINIT,
  813.         FR_ATTRIB_IL_ELLE,
  814.         JP_PROP_THING,
  815.         JP_UNIT_NONE
  816.     ),
  817.     JP_PRONOUN( FR_ATTRIB_ALL,    FR_ATTRIB_NONE,    // tout le pays -> その国の全て
  818.         JP_PROP_ALL,    JP_PROP_NONE,
  819.         HasChildNoun,
  820.         "の全て",        JP_EMPHASIS_NONE,
  821.         FR_PART_NOUN_INDEFINIT,
  822.         FR_ATTRIB_IL_ELLE,
  823.         JP_PROP_THING,
  824.         JP_UNIT_NONE
  825.     ),
  826.     JP_PRONOUN( FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  827.         JP_PROP_ALL,    JP_PROP_NONE,
  828.         NULL,
  829.         "全て",            JP_EMPHASIS_NONE,
  830.         FR_PART_NOUN_INDEFINIT,
  831.         FR_ATTRIB_IL_ELLE,
  832.         JP_PROP_THING,
  833.         JP_UNIT_NONE
  834.     )
  835. };
  836.  
  837. JP_PRONOUN    dic_Siens[] = {
  838.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  839.         JP_PROP_ALL,    JP_PROP_NONE,
  840.         NULL,
  841.         "(彼/女/それ)のもの",    JP_EMPHASIS_NONE,    FR_PART_NOUN_POSSESIVE,
  842.         FR_ATTRIB_ILS,    JP_PROP_THING,    JP_UNIT_NONE
  843.     )
  844. };
  845.  
  846. JP_PRONOUN    dic_Sien[] = {
  847.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  848.         JP_PROP_ALL,    JP_PROP_NONE,
  849.         NULL,
  850.         "(彼/女/それ)のもの",    JP_EMPHASIS_NONE,    FR_PART_NOUN_POSSESIVE,
  851.         FR_ATTRIB_IL,    JP_PROP_THING,    JP_UNIT_NONE
  852.     )
  853. };
  854.  
  855. JP_PRONOUN    dic_Siennes[] = {
  856.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  857.         JP_PROP_ALL,    JP_PROP_NONE,
  858.         NULL,
  859.         "(彼/女/それ)のもの",    JP_EMPHASIS_NONE,    FR_PART_NOUN_POSSESIVE,
  860.         FR_ATTRIB_ELLE,    JP_PROP_THING,    JP_UNIT_NONE
  861.     )
  862. };
  863.  
  864. JP_PRONOUN    dic_Sienne[] = {
  865.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  866.         JP_PROP_ALL,    JP_PROP_NONE,
  867.         NULL,
  868.         "(彼/女/それ)のもの",    JP_EMPHASIS_NONE,    FR_PART_NOUN_POSSESIVE,
  869.         FR_ATTRIB_ELLE,    JP_PROP_THING,    JP_UNIT_NONE
  870.     )
  871. };
  872.  
  873. JP_PRONOUN    dic_Notres[] = {
  874.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  875.         JP_PROP_ALL,    JP_PROP_NONE,
  876.         NULL,
  877.         "私達のもの",    JP_EMPHASIS_NONE,    FR_PART_NOUN_POSSESIVE,
  878.         FR_ATTRIB_ILS,    JP_PROP_THING,    JP_UNIT_NONE
  879.     )
  880. };
  881.  
  882. JP_PRONOUN    dic_Notre[] = {
  883.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  884.         JP_PROP_ALL,    JP_PROP_NONE,
  885.         NULL,
  886.         "貴方(ら)のもの",JP_EMPHASIS_NONE,    FR_PART_NOUN_POSSESIVE,
  887.         FR_ATTRIB_ILS,    JP_PROP_THING,    JP_UNIT_NONE
  888.     )
  889. };
  890.  
  891. JP_PRONOUN    dic_Votre[] = {
  892.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  893.         JP_PROP_ALL,    JP_PROP_NONE,
  894.         NULL,
  895.         "貴方のもの",    JP_EMPHASIS_NONE,    FR_PART_NOUN_POSSESIVE,
  896.         FR_ATTRIB_ILS,    JP_PROP_THING,        JP_UNIT_NONE
  897.     )
  898. };
  899.  
  900. JP_PRONOUN    dic_Votres[] = {
  901.     JP_PRONOUN(     FR_ATTRIB_ALL,        FR_ATTRIB_NONE,
  902.         JP_PROP_ALL,        JP_PROP_NONE,
  903.         NULL,
  904.         "貴方(ら)のもの",    JP_EMPHASIS_NONE,    FR_PART_NOUN_POSSESIVE,
  905.         FR_ATTRIB_IL_ELLE,    JP_PROP_THING,        JP_UNIT_NONE
  906.     )
  907. };
  908.  
  909. JP_PRONOUN    dic_Leurs[] = {
  910.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  911.         JP_PROP_ALL,    JP_PROP_NONE,
  912.         NULL,
  913.         "(彼/女/それ)のもの",JP_EMPHASIS_NONE,    FR_PART_NOUN_POSSESIVE,
  914.         FR_ATTRIB_IL_ELLE,JP_PROP_THING,    JP_UNIT_NONE
  915.     )
  916. };
  917.  
  918. JP_PRONOUN    dic_Leur[] = {
  919.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  920.         JP_PROP_ALL,    JP_PROP_NONE,
  921.         NULL,
  922.         "(彼/女/それ)のもの",    JP_EMPHASIS_NONE,    FR_PART_NOUN_POSSESIVE,
  923.         FR_ATTRIB_ILS,    JP_PROP_THING,    JP_UNIT_NONE
  924.     )
  925. };
  926.  
  927. JP_PRONOUN    jp_LesUns[] = {
  928.     JP_PRONOUN(     FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  929.         JP_PROP_ALL,    JP_PROP_NONE,
  930.         NULL,
  931.         "あるもの",        JP_EMPHASIS_NONE,    FR_PART_NOUN_INDEFINIT,
  932.         FR_ATTRIB_ILS,    JP_PROP_ALL,    JP_UNIT_NONE
  933.     )
  934. };
  935.  
  936. static JP_PRONOUN    jp_Aucun[] = {
  937.     JP_PRONOUN( FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  938.         JP_PROP_ALL,    JP_PROP_NONE,
  939.         IsTokenRoot,
  940.         "誰",        JP_EMPHASIS_MO,            FR_PART_NOUN_INDEFINIT,
  941.         FR_ATTRIB_IL_ELLE,
  942.         JP_PROP_HUMAN | JP_PROP_NEGATIVE,
  943.         JP_UNIT_HITO
  944.     )
  945. };    
  946.  
  947. // 目的語代名詞
  948. PRONOUN    objectNounTable[] = {
  949.     { "l'",        FR_ATTRIB_IL_ELLE,    FR_SHORT_NONE, JPPRONOUN_DIC(dic_L)        },     // le, laのエリジオン
  950.     { "les",    FR_ATTRIB_ILS,        FR_SHORT_NONE, JPPRONOUN_DIC(dic_Les)    },
  951.     { "le",        FR_ATTRIB_IL,        FR_SHORT_NONE, JPPRONOUN_DIC(dic_Le)    },
  952.     { "la",        FR_ATTRIB_ELLE,        FR_SHORT_NONE, JPPRONOUN_DIC(dic_La)    },
  953.     { "en",        FR_ATTRIB_ILS,        FR_SHORT_NONE, JPPRONOUN_DIC(dic_JpPronoun_En) },
  954.     { "nous",    FR_ATTRIB_NOUS,        FR_SHORT_NONE, JPPRONOUN_DIC(dic_Nous)    },
  955.     { "vous",    FR_ATTRIB_VOUS,        FR_SHORT_NONE, JPPRONOUN_DIC(dic_Vous)    },
  956.     { "se",        (FR_ATTRIB)(FR_ATTRIB_SINGLE | FR_ATTRIB_ILS),        FR_SHORT_NONE, JPPRONOUN_DIC(dic_Se)    },
  957.     { "",        FR_ATTRIB_NONE,        }    // End Code
  958. };
  959.  
  960. // 代名詞
  961. PRONOUN    pronounTable[] = {
  962.     { "je",        FR_ATTRIB_JE,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Je)        },
  963.     { "moi",    FR_ATTRIB_JE,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Moi)        },
  964.     { "me",        FR_ATTRIB_JE,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Me)        },
  965.     { "te",        FR_ATTRIB_TU,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Te)        },        // t'というエリジオンの可能性はある。(teはtuの前に検証する)
  966.     { "tu",        FR_ATTRIB_TU,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Tu)        },        // t'というエリジオンはない。
  967.     { "toi",    FR_ATTRIB_TU,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Toi)        },
  968.     { "il",        FR_ATTRIB_IL,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Il)        },
  969.     { "lui",    FR_ATTRIB_IL,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Lui)        },
  970.     { "elle",    FR_ATTRIB_ELLE,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Elle)        },
  971.     { "on",        FR_ATTRIB_IL_ELLE,    FR_SHORT_NONE,        JPPRONOUN_DIC(dic_On)        },
  972.     { "nous",    FR_ATTRIB_NOUS,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Nous)        },
  973.     { "vous",    FR_ATTRIB_VOUS,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Vous)        },
  974.     { "ils",    FR_ATTRIB_ILS,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Ils)        },
  975.     { "eux",    FR_ATTRIB_ILS,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Eux)        },
  976.     { "elles",    FR_ATTRIB_ELLES,    FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Elles)    },
  977.     { "se",        (FR_ATTRIB)(FR_ATTRIB_IL | FR_ATTRIB_ILS),        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Se)        },
  978.     { "autre",    FR_ATTRIB_IL_ELLE,    FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Autre)    },
  979.     { "autres",    FR_ATTRIB_ILS,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Autres)    },
  980.     { "ce",        FR_ATTRIB_IL_ELLE,    FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Ce)        },
  981.     { "ca",        FR_ATTRIB_IL_ELLE,    FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Ca)        },
  982.     { "chacun",    FR_ATTRIB_IL_ELLE,    FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Chacun)    },
  983.     { "chacune",FR_ATTRIB_ILS,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Chacune)    },
  984.     { "cela",    (FR_ATTRIB)(FR_ATTRIB_IL_ELLE | FR_ATTRIB_PLURAL),        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Cela)        },
  985.     { "ceci",    FR_ATTRIB_IL,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Ceci)        },
  986.     { "celui",    FR_ATTRIB_IL,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Celui)    },
  987.     { "celle",    FR_ATTRIB_IL,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Celle)    },
  988.     { "ceux",    FR_ATTRIB_ILS,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Ceux)        },
  989.     { "celles",    FR_ATTRIB_ELLES,    FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Celles)    },
  990.     { "personne",FR_ATTRIB_IL_ELLE,    FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Personne)    },
  991.     { "quelqu'un",FR_ATTRIB_IL_ELLE,FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Quelqun)    },
  992.     { "rien",    FR_ATTRIB_IL_ELLE,    FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Rien)        },
  993.     { "dont",    FR_ATTRIB_IL_ELLE,    FR_SHORT_DE,        JPPRONOUN_DIC(dic_Dont)        },
  994.     { "m]me",    FR_ATTRIB_IL_ELLE,    FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Meme)        },
  995.     { "miens",    FR_ATTRIB_ILS,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Miens)    },
  996.     { "mien",    FR_ATTRIB_IL_ELLE,    FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Mien)        },
  997.     { "miennes",FR_ATTRIB_ILS,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Miennes)    },
  998.     { "mienne",    FR_ATTRIB_IL_ELLE,    FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Mienne)    },
  999.     { "tiens",    FR_ATTRIB_ILS,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Tiens)    },
  1000.     { "tien",    FR_ATTRIB_IL_ELLE,    FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Tien)        },
  1001.     { "tiennes",FR_ATTRIB_ELLES,    FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Tiennes)    },
  1002.     { "tienne",    FR_ATTRIB_IL_ELLE,    FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Tienne)    },
  1003.     { "tous",    FR_ATTRIB_IL_ELLE,    FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Tous)        },
  1004.     { "toute",    FR_ATTRIB_ELLES,    FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Tout)        },
  1005.     { "tout",    FR_ATTRIB_IL_ELLE,    FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Tout)        },
  1006.     { "toutes",    FR_ATTRIB_ELLES,    FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Tout)        },
  1007.     { "siens",    FR_ATTRIB_ILS,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Siens)    },
  1008.     { "sien",    FR_ATTRIB_IL_ELLE,    FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Sien)        },
  1009.     { "siennes",FR_ATTRIB_ILS,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Siennes)    },
  1010.     { "sienne",    FR_ATTRIB_IL_ELLE,    FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Sienne)    },
  1011.     { "n`tres",    FR_ATTRIB_ILS,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Notres)    },
  1012.     { "n`tre",    FR_ATTRIB_IL_ELLE,    FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Notre)    },
  1013.     { "v`tres",    FR_ATTRIB_IL_ELLE,    FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Votres)    },
  1014.     { "v`tres",    FR_ATTRIB_ILS,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Votre)    },
  1015.     { "leurs",    FR_ATTRIB_ILS,        FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Leurs)    },
  1016.     { "leur",    FR_ATTRIB_IL_ELLE,    FR_SHORT_NONE,        JPPRONOUN_DIC(dic_Leur)        },
  1017.     { "les uns",FR_ATTRIB_ILS,        FR_SHORT_NONE,        JPPRONOUN_DIC(jp_LesUns)    },
  1018.     { "aucun",    FR_ATTRIB_IL_ELLE,    FR_SHORT_NONE,        JPPRONOUN_DIC(jp_Aucun)        },
  1019.     { "",        FR_ATTRIB_NONE,        FR_SHORT_NONE,        NULL,    0    }    // End Code
  1020. };
  1021.  
  1022.  
  1023. static JP_PROADJECTIVE    proadj_ce[] = {
  1024.     JP_PROADJECTIVE(
  1025.         FR_PART_ADJECTIVE_DEMONSTRATIVE,
  1026.         "この",    JP_KIND_NONE,
  1027.         JP_PROP_CONDITION)
  1028. };
  1029.  
  1030. static JP_PROADJECTIVE    proadj_ces[] = {
  1031.     JP_PROADJECTIVE(
  1032.         FR_PART_ADJECTIVE_DEMONSTRATIVE,
  1033.         "これらの",    JP_KIND_NONE,
  1034.         JP_PROP_CONDITION)
  1035. };
  1036.  
  1037. static JP_PROADJECTIVE    proadj_mon[] = {
  1038.     JP_PROADJECTIVE(
  1039.     FR_PART_ADJECTIVE_POSSESIVE,
  1040.     "私の",    JP_KIND_NONE,
  1041.     JP_PROP_CONDITION)
  1042. };
  1043.  
  1044. static JP_PROADJECTIVE    proadj_ton[] = {
  1045.     JP_PROADJECTIVE(
  1046.     FR_PART_ADJECTIVE_POSSESIVE,
  1047.     "君の",    JP_KIND_NONE,
  1048.     JP_PROP_CONDITION)
  1049. };
  1050.  
  1051. static JP_PROADJECTIVE    proadj_son[] = {
  1052.     JP_PROADJECTIVE(
  1053.     FR_PART_ADJECTIVE_POSSESIVE,
  1054.     "(彼/女/それ)の",    JP_KIND_NONE,
  1055.     JP_PROP_CONDITION)
  1056. };
  1057.  
  1058. static JP_PROADJECTIVE    proadj_notre[] = {
  1059.     JP_PROADJECTIVE(
  1060.     FR_PART_ADJECTIVE_POSSESIVE,
  1061.     "私達の",    JP_KIND_NONE,
  1062.     JP_PROP_CONDITION)
  1063. };
  1064.  
  1065. static JP_PROADJECTIVE    proadj_votre[] = {
  1066.     JP_PROADJECTIVE(
  1067.     FR_PART_ADJECTIVE_POSSESIVE,
  1068.     "貴方達の",    JP_KIND_NONE,
  1069.     JP_PROP_CONDITION)
  1070. };
  1071.  
  1072.  
  1073. static JP_PROADJECTIVE    proadj_leur[] = {
  1074.     JP_PROADJECTIVE(
  1075.     FR_PART_ADJECTIVE_POSSESIVE,
  1076.     "(彼/女/それ)らの",    JP_KIND_NONE,
  1077.     JP_PROP_CONDITION)
  1078. };
  1079.  
  1080. static    JP_PROADJECTIVE    proadj_tout[] = {
  1081.     JP_PROADJECTIVE(
  1082.         FR_PART_ADJECTIVE_DEMONSTRATIVE,
  1083.         "どの",        JP_KIND_NONE,
  1084.         JP_PROP_CONDITION)
  1085. };
  1086.  
  1087. static JP_PROADJECTIVE    proadj_ci[] = {
  1088.     JP_PROADJECTIVE(
  1089.         FR_PART_ADJECTIVE_DEMONSTRATIVE,
  1090.         "これらの",    JP_KIND_NONE,
  1091.         JP_PROP_CONDITION,
  1092.         JP_PROP_ALL,    IsTokenPlural,
  1093.         FR_PART_NONE,    JP_PROP_ALL,    
  1094.         FR_LOCATION_BEHIND),
  1095.     JP_PROADJECTIVE(
  1096.         FR_PART_ADJECTIVE_DEMONSTRATIVE,
  1097.         "この",    JP_KIND_NONE,
  1098.         JP_PROP_CONDITION,
  1099.         JP_PROP_ALL,    FR_PART_NONE,    JP_PROP_ALL,    
  1100.         FR_LOCATION_BEHIND)
  1101. };
  1102.  
  1103. static JP_PROADJECTIVE    proadj_aucun[] = {
  1104.     JP_PROADJECTIVE(
  1105.         FR_PART_ADJECTIVE_DEMONSTRATIVE,
  1106.         "どの",        JP_KIND_NONE,
  1107.         JP_PROP_NEGATIVE2,
  1108.         JP_PROP_ALL,
  1109.         FR_PART_NONE,    JP_PROP_ALL,    
  1110.         FR_LOCATION_FRONT,
  1111.         JP_EMPHASIS_MO),
  1112. };
  1113.  
  1114. static JP_PROADJECTIVE    proadj_null[] = {
  1115.     JP_PROADJECTIVE(
  1116.         FR_PART_ADJECTIVE_DEMONSTRATIVE,
  1117.         "何の",        JP_KIND_NONE,
  1118.         JP_PROP_NEGATIVE2,
  1119.         JP_PROP_ALL,
  1120.         FR_PART_NONE,    JP_PROP_ALL,    
  1121.         FR_LOCATION_FRONT,
  1122.         JP_EMPHASIS_MO),
  1123. };
  1124.  
  1125.  
  1126. // 品質形容詞以外の形容詞
  1127. PROADJECTIVE    proadjectiveTable[] = {
  1128.     { "cette",    FR_ATTRIB_ELLE,        FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_ce)        },
  1129.     { "cet",    FR_ATTRIB_ELLE,        FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_ce)        },
  1130.     { "ces",    FR_ATTRIB_ILS,        FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_ces)    },
  1131.     { "ce",        FR_ATTRIB_IL,        FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_ce)        },
  1132.     { "mon",    FR_ATTRIB_IL,        FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_mon)    },
  1133.     { "ma",        FR_ATTRIB_ELLE,        FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_mon)    },
  1134.     { "mes",    FR_ATTRIB_ILS,        FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_mon)    },
  1135.     { "ton",    FR_ATTRIB_IL,        FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_ton)    },
  1136.     { "ta",        FR_ATTRIB_ELLE,        FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_ton)    },
  1137.     { "tes",    FR_ATTRIB_ILS,        FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_ton)    },
  1138.     { "son",    FR_ATTRIB_IL,        FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_son)    },
  1139.     { "sa",        FR_ATTRIB_ELLE,        FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_son)    },
  1140.     { "ses",    FR_ATTRIB_ILS,        FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_son)    },
  1141.     { "tous",    FR_ATTRIB_ELLES,    FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_tout)    },
  1142.     { "toute",    FR_ATTRIB_ELLE,        FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_tout)    },
  1143.     { "tout",    FR_ATTRIB_IL,        FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_tout)    },
  1144.     { "toutes",    FR_ATTRIB_ELLES,    FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_tout)    },
  1145.     { "notre",    FR_ATTRIB_IL_ELLE,    FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_notre)    },
  1146.     { "nos",    FR_ATTRIB_ILS,        FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_notre)    },
  1147.     { "votre",    FR_ATTRIB_IL_ELLE,    FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_votre)    },
  1148.     { "vos",    FR_ATTRIB_ILS,        FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_votre)    },
  1149.     { "leur",    FR_ATTRIB_IL_ELLE,    FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_leur)    },
  1150.     { "leurs",    FR_ATTRIB_IL,        FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_leur)    },
  1151.     { "ci",        FR_ATTRIB_ALL,        FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_ci)        },
  1152.     { "l@",        FR_ATTRIB_ALL,        FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_ci)        },
  1153.     { "aucun",    FR_ATTRIB_ILS,        FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_aucun)    },
  1154.     { "aucune",    FR_ATTRIB_ELLES,    FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_aucun)    },
  1155.     { "nul",    FR_ATTRIB_ILS,        FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_null)    },
  1156.     { "nulle",    FR_ATTRIB_ELLES,    FR_CHANGE_NONE,    JPPROADJ_DIC(proadj_null)    },
  1157.     { "",        FR_ATTRIB_NONE,        FR_CHANGE_NONE,    NULL }    // End Code
  1158. };
  1159.  
  1160. JP_PROADVERB proadvAssez[] = {
  1161.     JP_PROADVERB("十分に",    JP_KIND_NONE,    JP_PROP_VOLUME,    CMP_TOKEN( FR_PART_VERB_ALL))
  1162. };
  1163.  
  1164.  
  1165. // bien,行,上手に,,,否,あまり,否,,状,とても,量,,,よく
  1166. JP_PROADVERB proadvBien[] = {
  1167.     JP_PROADVERB("すっかり",JP_KIND_NONE,    JP_PROP_CONDITION,    "changer"),
  1168.     JP_PROADVERB("よく",    JP_KIND_NONE,    JP_PROP_CONDITION,    "entendre"),
  1169.     JP_PROADVERB("よく",    JP_KIND_NONE,    JP_PROP_CONDITION,    "supporter"),
  1170.     JP_PROADVERB("上手に",    JP_KIND_NONE,    JP_PROP_CONDITION,    JP_PROP_ACTION),
  1171.     JP_PROADVERB("あまり",    JP_KIND_NONE,    JP_PROP_CONDITION,    JP_PROP_NEGATIVE),
  1172.     //  とてもとても (tr}s bien) -> "とても"にするため、JP_PROP_VOLUME
  1173.     JP_PROADVERB("とても",    JP_KIND_NONE,    JP_PROP_VOLUME,        JP_PROP_ALL),    // CONDITION),
  1174.     JP_PROADVERB("とても",    JP_KIND_NONE,    JP_PROP_VOLUME,        (FR_PART)(FR_PART_ADJECTIVE | FR_PART_ADVERB_ALL), JP_PROP_ALL),
  1175. };
  1176.  
  1177. JP_PROADVERB proadvFois[] = {
  1178.     JP_PROADVERB( "倍",        JP_KIND_NONE,    JP_PROP_VOLUME,    JP_PROP_ALL)
  1179. };
  1180.  
  1181. JP_PROADVERB proadvTres[] = {
  1182.     // tr}s bien とてもとても -> とれも
  1183.     JP_PROADVERB("",        JP_KIND_NONE, JP_PROP_VOLUME, FR_PART_ADVERB_ALL, JP_PROP_VOLUME, NULL, "bien"),
  1184.     JP_PROADVERB("とても",    JP_KIND_NONE, JP_PROP_VOLUME, FR_PART_ADJECTIVE_ALL,  JP_PROP_ALL),
  1185.     JP_PROADVERB("とても",    JP_KIND_NONE, JP_PROP_VOLUME, FR_PART_ADVERB_ADVERB,  JP_PROP_ALL),
  1186.     JP_PROADVERB("とても",    JP_KIND_NONE, JP_PROP_VOLUME, FR_PART_ADVERB_GENERAL, JP_PROP_ALL)
  1187. };
  1188.  
  1189. JP_PROADVERB proadvPas[] = {
  1190.     // je ne suis <pas> Japonais.
  1191.     JP_PROADVERB("",        JP_KIND_NONE, JP_PROP_NEGATIVE, FR_PART_VERB_ALL, JP_PROP_NEGATIVE, NULL, NULL, DisableChildPrtControl),
  1192. };
  1193.  
  1194. JP_PROADVERB proadvPlus[] = {
  1195.     JP_PROADVERB("以上",        JP_KIND_NONE,    JP_PROP_VOLUME, JP_PROP_UNIT),
  1196.     JP_PROADVERB("より",        JP_KIND_NONE,    JP_PROP_VOLUME, JP_PROP_ALL)
  1197. };
  1198.  
  1199. JP_PROADVERB proadvPresque[] = {
  1200.     JP_PROADVERB( "ほとんど",    JP_KIND_NONE,    JP_PROP_VOLUME,    JP_PROP_ALL)
  1201. };
  1202.  
  1203. JP_PROADVERB proadvMoins[] = {
  1204.     JP_PROADVERB("より低度に",JP_KIND_NONE,    JP_PROP_VOLUME, JP_PROP_ALL)
  1205. };
  1206.  
  1207. JP_PROADVERB proadvTous[] = {
  1208.     JP_PROADVERB("",            JP_KIND_NONE,    JP_PROP_VOLUME, JP_PROP_ALL)
  1209. };
  1210.  
  1211. JP_PROADVERB proadvComme[] = {
  1212.     JP_PROADVERB("なんて",    JP_KIND_NONE,    JP_PROP_VOLUME, FR_PART_SENTENCE_ALL, JP_PROP_ALL, NULL, NULL,
  1213.     DemphasisParentSubject_GA)
  1214. };
  1215.  
  1216. JP_PROADVERB proadvY[] = {
  1217.     JP_PROADVERB("そこ",    JP_KIND_KEIYODOSHI, JP_PROP_PLACE,     JP_PROP_ALL)
  1218. };
  1219.  
  1220.  
  1221. PROADVERB proadverbTable[] = {
  1222.     { "assez",    FR_PART_ADVERB_ADVERB,    FR_ATTRIB_NONE,    JPPROADVERB_DIC(proadvAssez)    },
  1223.     { "bien",    FR_PART_ADVERB_ADVERB,    FR_ATTRIB_NONE,    JPPROADVERB_DIC(proadvBien)        },
  1224.     // Il est six fois plus grand.
  1225.     { "fois",    FR_PART_ADVERB_ADVERB,    FR_ATTRIB_NONE, JPPROADVERB_DIC(proadvFois)        },
  1226.     { "tr}s",    FR_PART_ADVERB_ADVERB,    FR_ATTRIB_NONE, JPPROADVERB_DIC(proadvTres)        },
  1227.     { "pas",    FR_PART_ADVERB_PAS,        FR_ATTRIB_NONE, JPPROADVERB_DIC(proadvPas)        },
  1228.     { "plus",    FR_PART_ADVERB_PLUS,    FR_ATTRIB_PLUS, JPPROADVERB_DIC(proadvPlus)        },
  1229.     { "presque", FR_PART_ADVERB_ADVERB,    FR_ATTRIB_NONE,    JPPROADVERB_DIC(proadvPresque)    },
  1230.     { "moins",    FR_PART_ADVERB_PLUS,    FR_ATTRIB_PLUS, JPPROADVERB_DIC(proadvMoins)    },
  1231.     { "tous",    FR_PART_ADVERB_TOUT,    FR_ATTRIB_ELLE, JPPROADVERB_DIC(proadvTous)        },
  1232.     { "toute",    FR_PART_ADVERB_TOUT,    FR_ATTRIB_ELLE, JPPROADVERB_DIC(proadvTous)        },
  1233.     { "toutes",    FR_PART_ADVERB_TOUT,    FR_ATTRIB_ELLES,JPPROADVERB_DIC(proadvTous)        },
  1234.     { "tout",    FR_PART_ADVERB_TOUT,    FR_ATTRIB_IL,    JPPROADVERB_DIC(proadvTous)        },
  1235.     { "tous",    FR_PART_ADVERB_TOUT,    FR_ATTRIB_ELLE, JPPROADVERB_DIC(proadvTous)        },
  1236.     { "comme",    FR_PART_ADVERB_EXCLAMINATION,
  1237.                                         FR_ATTRIB_NONE,    JPPROADVERB_DIC(proadvComme)    },
  1238.     { "y",        FR_PART_ADVERB_Y,        FR_ATTRIB_NONE,    JPPROADVERB_DIC(proadvY)        },
  1239.  
  1240.     { "", FR_PART_NONE, FR_ATTRIB_NONE }    // End Code
  1241. };
  1242.  
  1243. //
  1244. // 数字
  1245. //
  1246. NUMETRIC    numetricTable[] = {
  1247.     { "z{ro",        FR_PART_NUMETRIC_NUMBER,    0 },
  1248.     { "un",            FR_PART_NUMETRIC_NUMBER,    1 },
  1249.     { "une",        FR_PART_NUMETRIC_NUMBER,    1 },
  1250.     { "deux",        FR_PART_NUMETRIC_NUMBER,    2 },
  1251.     { "trois",        FR_PART_NUMETRIC_NUMBER,    3 },
  1252.     { "quatre-vingt",FR_PART_NUMETRIC_NUMBER,    80 },
  1253.     { "quatre",        FR_PART_NUMETRIC_NUMBER,    4 },
  1254.     { "cinq",        FR_PART_NUMETRIC_NUMBER,    5 },
  1255.     { "six",        FR_PART_NUMETRIC_NUMBER,    6 },
  1256.     { "sept",        FR_PART_NUMETRIC_NUMBER,    7 },
  1257.     { "huit",        FR_PART_NUMETRIC_NUMBER,    8 },
  1258.     { "neuf",        FR_PART_NUMETRIC_NUMBER,    9 },
  1259.     { "dix",        FR_PART_NUMETRIC_NUMBER,    10 },
  1260.     { "onze",        FR_PART_NUMETRIC_NUMBER,    11 },
  1261.     { "douze",        FR_PART_NUMETRIC_NUMBER,    12 },
  1262.     { "treize",        FR_PART_NUMETRIC_NUMBER,    13 },
  1263.     { "quatorze",    FR_PART_NUMETRIC_NUMBER,    14 },
  1264.     { "quinze",        FR_PART_NUMETRIC_NUMBER,    15 },
  1265.     { "seize",        FR_PART_NUMETRIC_NUMBER,    16 },
  1266.     { "vingt",        FR_PART_NUMETRIC_NUMBER,    20 },
  1267.     { "trente",        FR_PART_NUMETRIC_NUMBER,    30 },
  1268.     { "quatrente",    FR_PART_NUMETRIC_NUMBER,    40 },
  1269.     { "cinquante",    FR_PART_NUMETRIC_NUMBER,    50 },
  1270.     { "soixante",    FR_PART_NUMETRIC_NUMBER,    60 },
  1271.     { "cent",        FR_PART_NUMETRIC_NUMBER,    100 },
  1272.     { "cents",        FR_PART_NUMETRIC_NUMBER,    100 },
  1273.     { "mille",        FR_PART_NUMETRIC_NUMBER,    1000 },
  1274.     { "million",    FR_PART_NUMETRIC_NUMBER,    1000000 },
  1275.     { "milliard",    FR_PART_NUMETRIC_NUMBER,    1000000000 },
  1276.     { "milliards",    FR_PART_NUMETRIC_NUMBER,    1000000000 },
  1277.  
  1278.     { "z{ro",        FR_PART_NUMETRIC_ORDER,        0 },
  1279.     { "premier",    FR_PART_NUMETRIC_ORDER,        1 },
  1280.     { "premi}re",    FR_PART_NUMETRIC_ORDER,        1 },
  1281.     { "deuxi}me",    FR_PART_NUMETRIC_ORDER,        2 },
  1282.     { "second",        FR_PART_NUMETRIC_ORDER,        2 },
  1283.     { "seconde",    FR_PART_NUMETRIC_ORDER,        2 },
  1284.     { "troisi}me",    FR_PART_NUMETRIC_ORDER,        3 },
  1285.     { "quatre-vingti}me",FR_PART_NUMETRIC_ORDER,80 },
  1286.     { "quatr}me",    FR_PART_NUMETRIC_ORDER,        4 },
  1287.     { "cinqui}me",    FR_PART_NUMETRIC_ORDER,        5 },
  1288.     { "sixi}me",    FR_PART_NUMETRIC_ORDER,        6 },
  1289.     { "septi}me",    FR_PART_NUMETRIC_ORDER,        7 },
  1290.     { "huiti}me",    FR_PART_NUMETRIC_ORDER,        8 },
  1291.     { "neuvi}me",    FR_PART_NUMETRIC_ORDER,        9 },
  1292.     { "dixi}me",    FR_PART_NUMETRIC_ORDER,        10 },
  1293.     { "onzi}me",    FR_PART_NUMETRIC_ORDER,        11 },
  1294.     { "douzi}me",    FR_PART_NUMETRIC_ORDER,        12 },
  1295.     { "treizi}me",    FR_PART_NUMETRIC_ORDER,        13 },
  1296.     { "quatorzi}me",FR_PART_NUMETRIC_ORDER,        14 },
  1297.     { "quinzi}me",    FR_PART_NUMETRIC_ORDER,        15 },
  1298.     { "seizi}me",    FR_PART_NUMETRIC_ORDER,        16 },
  1299.     { "vingti}me",    FR_PART_NUMETRIC_ORDER,        20 },
  1300.     { "trenti}me",    FR_PART_NUMETRIC_ORDER,        30 },
  1301.     { "quatrenti}me",FR_PART_NUMETRIC_ORDER,    40 },
  1302.     { "cinquanti}me",FR_PART_NUMETRIC_ORDER,    50 },
  1303.     { "soixanti}me",FR_PART_NUMETRIC_ORDER,        60 },
  1304.     { "centi}me",    FR_PART_NUMETRIC_ORDER,        100 },
  1305.     { "cents",        FR_PART_NUMETRIC_ORDER,        100 },
  1306.     { "milli}me",    FR_PART_NUMETRIC_ORDER,        1000 },
  1307.     { "millioni}me",FR_PART_NUMETRIC_ORDER,        1000000 },
  1308.     { "milli}me",    FR_PART_NUMETRIC_ORDER,        1000000000 },
  1309.     { "", FR_PART_NONE, -1 }    // End code
  1310. };
  1311.  
  1312.  
  1313. void
  1314. ReplaceNounPrepNoun(TOKEN *p, TOKEN *prep)
  1315. {
  1316.     p->prtControl = PRT_CONTROL_REPLACED;
  1317.     p->scoreCombine += SCORE_NOUN_PREP_NOUN_IDEUM;
  1318. }
  1319.  
  1320. void
  1321. AddIdeumScore(TOKEN *p, TOKEN *prep)
  1322. {
  1323.     p->scoreCombine += SCORE_NOUN_PREP_NOUN_IDEUM;
  1324. }
  1325.  
  1326. BOOL
  1327. HasOuvrir(TOKEN *p)
  1328. {
  1329.     if(SearchToken("ouvrir", p->child))
  1330.         return(TRUE);
  1331.  
  1332.     return(FALSE);
  1333. }
  1334.  
  1335. // 前置詞
  1336. static JP_PREPOSITION    dic_a[] = {
  1337.     JP_PREPOSITION(    "%1I",    JP_KIND_NONE,
  1338.         JP_PROP_CONDITION,
  1339.         CMP_TOKEN ( FR_PART_VERB_GENERAL),
  1340.         CMP_TOKEN ( FR_PART_NOUN_GENERAL,    JP_PROP_NONE,    NULL,    "droite")
  1341.     ),
  1342.     JP_PREPOSITION(    "%1I",    JP_KIND_NONE,
  1343.         JP_PROP_CONDITION,
  1344.         CMP_TOKEN ( FR_PART_VERB_GENERAL),
  1345.         CMP_TOKEN ( FR_PART_NOUN_GENERAL,    JP_PROP_NONE,    NULL,    "gauche")
  1346.     ),
  1347.     JP_PREPOSITION(    "%1I関して",    JP_KIND_NONE,
  1348.         JP_PROP_CONDITION,
  1349.         CMP_TOKEN ( FR_PART_VERB_GENERAL),
  1350.         CMP_TOKEN ( FR_PART_NOUN_GENERAL,    JP_PROP_NONE,    NULL,    "{gard")
  1351.     ),
  1352.     JP_PREPOSITION(    "両手をひろげて",    JP_KIND_NONE,    // @ bras ouverts.
  1353.         JP_PROP_CONDITION,
  1354.         CMP_TOKEN ( FR_PART_VERB_GENERAL),
  1355.         CMP_TOKEN ( FR_PART_NOUN_GENERAL,    JP_PROP_NONE,    HasOuvrir,    "bras")
  1356.     ),
  1357.     JP_PREPOSITION(    "%a1ほど",    JP_KIND_KEIYODOSHI,
  1358.         JP_PROP_CONDITION,
  1359.         CMP_TOKEN ( FR_PART_VERB_GENERAL),
  1360.         CMP_TOKEN ( FR_PART_NOUN_GENERAL,    JP_PROP_NONE,    HasPrepositionDeInf,    "point"),
  1361.         ReplaceObject1
  1362.     ),
  1363.     JP_PREPOSITION(    "%s1T",    JP_KIND_NONE,
  1364.         JP_PROP_TIME,
  1365.         CMP_TOKEN ( FR_PART_VERB_GENERAL),
  1366.         CMP_TOKEN ( FR_PART_SENTENCE_PPAST)
  1367.     ),
  1368.     JP_PREPOSITION(    "%1単位で",    JP_KIND_NONE,
  1369.         JP_PROP_UNIT,
  1370.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1371.         CMP_TOKEN ( FR_PART_NOUN_GENERAL,    JP_PROP_UNIT,    IsAttribSingle)
  1372.     ),
  1373.     JP_PREPOSITION(    "%1I",    JP_KIND_NONE,
  1374.         JP_PROP_TIME,
  1375.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1376.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_TIME)
  1377.     ),
  1378.     JP_PREPOSITION(    "%1D",    JP_KIND_NONE,
  1379.         JP_PROP_PLACE,
  1380.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1381.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_PLACE)
  1382.     ),
  1383.     JP_PREPOSITION(    "%1I",    JP_KIND_NONE,        // elle {crit lettre @ son ami.
  1384.         JP_PROP_CONDITION,
  1385.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1386.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1387.     ),
  1388. // Verb + <a> + Noun
  1389.     JP_PREPOSITION(    "%1のもの",    JP_KIND_NONE,
  1390.         JP_PROP_CONDITION,
  1391.         CMP_TOKEN ( FR_PART_VERB_ALL,        JP_PROP_ALL),
  1392.         CMP_TOKEN ( FR_PART_NOUN_PERSONAL,    JP_PROP_HUMAN)
  1393.     ),
  1394. #if 0
  1395.     JP_PREPOSITION(    "%1単位で",    JP_KIND_NONE,
  1396.         JP_PROP_UNIT,
  1397.         FR_PART_VERB_ALL,        JP_PROP_ALL,    NULL,
  1398.         FR_PART_NOUN_GENERAL,    JP_PROP_UNIT,    IsAttribSingle
  1399.     ),
  1400. #endif
  1401.     JP_PREPOSITION(    "%1E",    JP_KIND_NONE,
  1402.         (JP_PROP)(JP_PROP_PLACE | JP_PROP_HUMAN),
  1403.         CMP_TOKEN ( FR_PART_VERB_ALL,        JP_PROP_MOVE),
  1404.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_HUMAN)
  1405.     ),
  1406.     JP_PREPOSITION(    "%1E",    JP_KIND_NONE,
  1407.         JP_PROP_PLACE,
  1408.         CMP_TOKEN ( FR_PART_VERB_ALL,        JP_PROP_MOVE),
  1409.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_PLACE | JP_PROP_THING)
  1410.     ),
  1411.     JP_PREPOSITION(    "%1D",    JP_KIND_NONE,
  1412.         JP_PROP_PLACE,
  1413.         CMP_TOKEN ( FR_PART_VERB_ALL),
  1414.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_PLACE)
  1415.     ),
  1416.     JP_PREPOSITION(    "%1I",    JP_KIND_NONE,
  1417.         JP_PROP_PLACE,
  1418.         CMP_TOKEN ( FR_PART_VERB_ALL),
  1419.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_TIME)
  1420.     ),
  1421. // Noun + <a> + Verb
  1422. #if 0
  1423.     JP_PREPOSITION(    "タイプライタ",        JP_KIND_NONE,
  1424.         JP_PROP_DRINK,        // machine @ {crire.
  1425.         FR_PART_NOUN_GENERAL,    JP_PROP_NONE,    NULL,    "machine",
  1426.         FR_PART_VERB_INF,        JP_PROP_NONE,    NULL,    "{crire",
  1427.         ReplaceNounPrepNoun
  1428.     ),
  1429. #endif
  1430.     JP_PREPOSITION(    "%s1べき",    JP_KIND_NONE,
  1431.         JP_PROP_CONDITION,
  1432.         CMP_TOKEN ( FR_PART_NOUN_GENERAL,    JP_PROP_ALL),
  1433.         CMP_TOKEN ( FR_PART_VERB_INF,        JP_PROP_ALL),
  1434.         ChangeIntransitiveVerbToTransitive    // devoir @ finir 終わる宿題 -> 終わらせる宿題
  1435.     ),
  1436. // Noun + <a> + Noun
  1437.     JP_PREPOSITION(    "カフェオレ",        JP_KIND_NONE,
  1438.         JP_PROP_DRINK,        // caf{ au lait.
  1439.         CMP_TOKEN( FR_PART_NOUN_GENERAL,    JP_PROP_NONE,    NULL,    "caf{"),
  1440.         CMP_TOKEN( FR_PART_NOUN_GENERAL,    JP_PROP_NONE,    NULL,    "lait"),
  1441.         ReplaceNounPrepNoun
  1442.     ),
  1443.  
  1444.     JP_PREPOSITION(    "%1N",    JP_KIND_NONE,
  1445.         JP_PROP_NONE,
  1446.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL),
  1447.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_PLACE | JP_PROP_TIME)
  1448.     ),
  1449.     JP_PREPOSITION(    "%1入の",    JP_KIND_NONE,    // cafe au lait.
  1450.         JP_PROP_NONE,
  1451.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_DRINK | JP_PROP_FOOD),
  1452.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_DRINK | JP_PROP_FOOD)
  1453.     ),
  1454.     JP_PREPOSITION("",        JP_KIND_NONE,
  1455.         JP_PROP_NONE,
  1456.         CMP_TOKEN ( FR_PART_PREPOSIT_JUSQUE,JP_PROP_NONE),
  1457.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_TIME | JP_PROP_PLACE)
  1458.     ),
  1459.     JP_PREPOSITION(    "%1N",    JP_KIND_NONE,
  1460.         JP_PROP_NONE,
  1461.         CMP_TOKEN ( FR_PART_NONE),
  1462.         CMP_TOKEN ( FR_PART_NONE)
  1463.     )
  1464. };
  1465.  
  1466. static    JP_PREPOSITION    dic_pres[] = {
  1467.     JP_PREPOSITION(    "%a1後",    JP_KIND_KEIYODOSHI,
  1468.         JP_PROP_CONDITION | JP_PROP_TIME,
  1469.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1470.         CMP_TOKEN ( FR_PART_SENTENCE_QUE,    JP_PROP_ALL)
  1471.     ),
  1472.     JP_PREPOSITION(    "%a1後",    JP_KIND_KEIYODOSHI,
  1473.         JP_PROP_CONDITION | JP_PROP_TIME,
  1474.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1475.         CMP_TOKEN ( FR_PART_VERB_INF,        JP_PROP_ALL)
  1476.     ),
  1477.     JP_PREPOSITION(    "%1N後",    JP_KIND_KEIYODOSHI,
  1478.         JP_PROP_CONDITION,
  1479.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1480.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_PLACE)
  1481.     ),
  1482.     JP_PREPOSITION(    "%1N後",    JP_KIND_KEIYODOSHI,
  1483.         JP_PROP_CONDITION,
  1484.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1485.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1486.     ),
  1487. };
  1488.  
  1489. static JP_PREPOSITION    dic_autourDe[] = {
  1490.     JP_PREPOSITION(    "%1N周り",    JP_KIND_KEIYODOSHI,
  1491.         JP_PROP_PLACE,
  1492.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1493.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_PLACE | JP_PROP_THING | JP_PROP_HUMAN)
  1494.     )
  1495. };
  1496.  
  1497. static    JP_PREPOSITION    dic_avant[] = {
  1498.     JP_PREPOSITION(    "%a1前に",    JP_KIND_NONE,
  1499.         JP_PROP_CONDITION | JP_PROP_TIME,
  1500.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1501.         CMP_TOKEN ( FR_PART_SENTENCE_QUE,    JP_PROP_ALL)
  1502.     ),
  1503.     JP_PREPOSITION(    "%a1前に",    JP_KIND_NONE,
  1504.         JP_PROP_CONDITION | JP_PROP_TIME,
  1505.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1506.         CMP_TOKEN ( FR_PART_PREPOSIT_DE_INF,JP_PROP_ALL)
  1507.     ),
  1508.     JP_PREPOSITION(    "%a1前に",    JP_KIND_NONE,    // avant huit heures 8時前に
  1509.         JP_PROP_CONDITION | JP_PROP_TIME,
  1510.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1511.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_UNIT)
  1512.     ),
  1513.     JP_PREPOSITION(    "%a1N前に",    JP_KIND_NONE,
  1514.         JP_PROP_CONDITION | JP_PROP_TIME,
  1515.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1516.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_TIME)
  1517.     ),
  1518.     JP_PREPOSITION(    "%a1N前に",    JP_KIND_NONE,
  1519.         JP_PROP_CONDITION | JP_PROP_PLACE,
  1520.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1521.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1522.     )
  1523. };
  1524.  
  1525. BOOL
  1526. IsTokenNotHuman(TOKEN *p)
  1527. {
  1528.     if(p->jpProp & JP_PROP_HUMAN)    return(FALSE);
  1529.     else                            return(TRUE);
  1530. }
  1531.  
  1532. static    JP_PREPOSITION    dic_avec[] = {
  1533.     JP_PREPOSITION(    "意地悪",    JP_KIND_KEIYODOSHI,
  1534.         JP_PROP_CONDITION,
  1535.         CMP_TOKEN( FR_PART_VERB_GENERAL),
  1536.         CMP_TOKEN( FR_PART_NOUN_GENERAL,    JP_PROP_NONE,    NULL,    "m{chancet{")
  1537.     ),
  1538.     JP_PREPOSITION(    "%1D",    JP_KIND_NONE,
  1539.         JP_PROP_CONDITION,
  1540.         CMP_TOKEN( FR_PART_VERB_GENERAL,    JP_PROP_NONE,    NULL,    "laver"),
  1541.         CMP_TOKEN( FR_PART_NOUN_GENERAL,    JP_PROP_NONE,    NULL,    "savon")
  1542.     ),
  1543.     JP_PREPOSITION(    "一生懸命",    JP_KIND_KEIYODOSHI,
  1544.         JP_PROP_CONDITION,
  1545.         CMP_TOKEN( FR_PART_VERB_GENERAL ),
  1546.         CMP_TOKEN( FR_PART_NOUN_GENERAL,    JP_PROP_NONE,    NULL,    "application")
  1547.     ),
  1548.     JP_PREPOSITION(    "%1Tいっしょ",    JP_KIND_KEIYODOSHI,
  1549.         JP_PROP_CONDITION,
  1550.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1551.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1552.     ),
  1553. // Noun + <avec> + noun
  1554.     JP_PREPOSITION(    "%1W着",    JP_KIND_TERU,
  1555.         JP_PROP_CONDITION,
  1556.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_HUMAN),
  1557.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_CLOTH,    IsTokenNotHuman)
  1558.     ),
  1559.     JP_PREPOSITION(    "%1T",        JP_KIND_RENTAISHI,
  1560.         JP_PROP_CONDITION,
  1561.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ACTION),
  1562.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1563.     ),
  1564.     JP_PREPOSITION(    "%1Tいっしょ",    JP_KIND_RENTAISHI,
  1565.         JP_PROP_CONDITION,
  1566.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL),
  1567.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1568.     )
  1569. };
  1570.  
  1571.  
  1572. static    JP_PREPOSITION    dic_chez[] = {
  1573.     JP_PREPOSITION(    "%1N家に",    JP_KIND_NONE,
  1574.         JP_PROP_PLACE,
  1575.         CMP_TOKEN ( FR_PART_VERB_ALL,        JP_PROP_ALL),
  1576.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_HUMAN)
  1577.     ),
  1578.     JP_PREPOSITION(    "%1N家の",    JP_KIND_NONE,
  1579.         JP_PROP_PLACE,
  1580.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL),
  1581.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_HUMAN)
  1582.     ),
  1583.     JP_PREPOSITION(    "%1N家に",    JP_KIND_NONE,
  1584.         JP_PROP_PLACE,
  1585.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_MOVE),
  1586.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_HUMAN)
  1587.     ),
  1588.     JP_PREPOSITION(    "%1N家で",    JP_KIND_NONE,
  1589.         JP_PROP_PLACE,
  1590.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ACTION),
  1591.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_HUMAN)
  1592.     ),
  1593.     JP_PREPOSITION(    "%1N家に",    JP_KIND_NONE,
  1594.         JP_PROP_PLACE,
  1595.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1596.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_HUMAN)
  1597.     ),
  1598.     JP_PREPOSITION(    "%1N家で",    JP_KIND_NONE,
  1599.         JP_PROP_PLACE,
  1600.         CMP_TOKEN ( FR_PART_NONE,            JP_PROP_ALL),
  1601.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_HUMAN)
  1602.     )
  1603. };
  1604.  
  1605. static    JP_PREPOSITION    dic_comme[] = {
  1606.     JP_PREPOSITION(    "%a1よう",    JP_KIND_KEIYODOSHI,
  1607.         JP_PROP_CONDITION,
  1608.         CMP_TOKEN( FR_PART_VERB_GENERAL),
  1609.         CMP_TOKEN( FR_PART_SENTENCE_ALL),
  1610.         EmphasisChildSubject_GA
  1611.     ),
  1612.     JP_PREPOSITION(    "%1Nよう",    JP_KIND_KEIYODOSHI,
  1613.         JP_PROP_CONDITION,
  1614.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1615.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL,    HasArticleDefinitOrUnique)
  1616.     ),
  1617.     JP_PREPOSITION(    "%1として",    JP_KIND_NONE,
  1618.         JP_PROP_CONDITION,
  1619.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1620.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1621.     ),
  1622.     JP_PREPOSITION(    "%1Nよう",    JP_KIND_KEIYODOSHI,
  1623.         JP_PROP_CONDITION,
  1624.         CMP_TOKEN ( FR_PART_VERB_ALL,        JP_PROP_ALL),
  1625.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL,    HasArticleDefinitOrUnique)
  1626.     ),
  1627.     JP_PREPOSITION(    "%1として",    JP_KIND_NONE,
  1628.         JP_PROP_CONDITION,
  1629.         CMP_TOKEN ( FR_PART_VERB_ALL,        JP_PROP_ALL),
  1630.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1631.     ),
  1632.     JP_PREPOSITION(    "%1よう",    JP_KIND_KEIYODOSHI,
  1633.         JP_PROP_CONDITION,
  1634.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL),
  1635.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1636.     ),
  1637. };
  1638.  
  1639. static    JP_PREPOSITION    dic_contre[] = {
  1640.     JP_PREPOSITION(    "%1I反して",    JP_KIND_NONE,
  1641.         JP_PROP_PLACE,
  1642.         CMP_TOKEN ( FR_PART_NOUN,            JP_PROP_ALL),
  1643.         CMP_TOKEN ( FR_PART_NOUN,            JP_PROP_PLACE)
  1644.     ),
  1645.     JP_PREPOSITION(    "%1I反して",    JP_KIND_NONE,
  1646.         JP_PROP_CONDITION,
  1647.         CMP_TOKEN ( FR_PART_NOUN,            JP_PROP_ALL),
  1648.         CMP_TOKEN ( FR_PART_NOUN,            JP_PROP_ALL)
  1649.     )
  1650. };
  1651.  
  1652. void
  1653. SubtractNumber(TOKEN *parent, TOKEN *prep)
  1654. {
  1655.     TOKEN    *numetric = SearchToken(FR_PART_NUMETRIC_NUMBER, prep->object1->child);
  1656.  
  1657.     numetric->prtControl = (PRT_CONTROL)(numetric->prtControl | PRT_CONTROL_MINUS1);
  1658. }
  1659.  
  1660. static JP_PREPOSITION    dic_dans[] = {
  1661.     JP_PREPOSITION(    "%1D",    JP_KIND_NONE,    // dans cet accident. その事故の中で -> その事故で
  1662.         JP_PROP_PLACE | JP_PROP_TIME,
  1663.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1664.         CMP_TOKEN ( FR_PART_NOUN_GENERAL,    JP_PROP_ALL,    NULL, "accident")
  1665.     ),
  1666.     JP_PREPOSITION(    "%1したら",    JP_KIND_NONE,
  1667.         JP_PROP_TIME,
  1668.         CMP_TOKEN( FR_PART_VERB_GENERAL,    JP_PROP_NONE,    IsTenseFuture),
  1669.         CMP_TOKEN( FR_PART_NOUN_ALL,        JP_PROP_TIME,    HasNumber),
  1670.         SubtractNumber
  1671.     ),
  1672.     JP_PREPOSITION(    "%1N中に",    JP_KIND_NONE,
  1673.         JP_PROP_PLACE,
  1674.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_MOVE),
  1675.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_PLACE)
  1676.     ),
  1677.     JP_PREPOSITION(    "%1N中に",    JP_KIND_NONE,
  1678.         JP_PROP_PLACE,
  1679.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_MOVE),
  1680.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1681.     ),
  1682.     JP_PREPOSITION(    "%1N中で",    JP_KIND_NONE,
  1683.         JP_PROP_PLACE,
  1684.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ACTION),
  1685.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1686.     ),
  1687.     // Rien n'est clair dans son histoire.
  1688.     JP_PREPOSITION(    "%1N中で",    JP_KIND_NONE,
  1689.         JP_PROP_PLACE,
  1690.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_CONDITION,    IsSentenceSVA),
  1691.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1692.     ),
  1693.     JP_PREPOSITION(    "%1N中に",    JP_KIND_NONE,
  1694.         JP_PROP_PLACE,
  1695.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1696.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1697.     ),
  1698.     JP_PREPOSITION(    "%1以内に",    JP_KIND_NONE,
  1699.         JP_PROP_TIME,
  1700.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1701.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_TIME)
  1702.     ),
  1703.     JP_PREPOSITION(    "%1N中の",    JP_KIND_NONE,
  1704.         JP_PROP_PLACE,
  1705.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL),
  1706.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1707.     ),
  1708.     JP_PREPOSITION(    "%1N中に",    JP_KIND_NONE,
  1709.         JP_PROP_PLACE,
  1710.         CMP_TOKEN ( FR_PART_NONE),
  1711.         CMP_TOKEN ( FR_PART_NONE)
  1712.     )
  1713. };
  1714.  
  1715. BOOL
  1716. CanMostAmong(TOKEN *p)
  1717. {
  1718.     TOKEN    *owner = IsWordOwner(p, (FR_ATTRIB)(FR_ATTRIB_TOP | FR_ATTRIB_ONE_OF));
  1719.  
  1720.     if(IsObjectMatch(p, FR_PART_SENTENCE_ALL)    // Verbでの代用は不可
  1721.     && owner
  1722.     && !SearchToken(FR_PART_PREPOSIT_DE, owner))
  1723.         return(TRUE);
  1724.     else
  1725.         return(FALSE);
  1726. }
  1727.  
  1728. void
  1729. AddMostMongScore(TOKEN *p, TOKEN *prep)
  1730. {
  1731.     p->scoreCombine += SCORE_MOST_AMONG;
  1732. }
  1733.  
  1734.  
  1735. JP_PREPOSITION    jpprepDeInfDE[] = {
  1736.     JP_PREPOSITION(
  1737.         "%a1",        JP_KIND_NONE,
  1738.         JP_PROP_NONE,
  1739.         CMP_TOKEN ( FR_PART_NOUN_ALL,    JP_PROP_ALL),
  1740.         CMP_TOKEN ( FR_PART_VERB_INF,    JP_PROP_ALL)
  1741.     ),
  1742. };
  1743.  
  1744. BOOL
  1745. IsDeOwner(TOKEN *p)
  1746. {
  1747.     if(IsTokenFrench(p, "voici")
  1748.     || IsTokenFrench(p, "voil@"))
  1749.         return(FALSE);
  1750.  
  1751.     return(TRUE);
  1752. }
  1753.  
  1754. JP_PREPOSITION    dic_jpr_de[] = {
  1755.     JP_PREPOSITION(    "そんな風に",        JP_KIND_NONE,
  1756.         JP_PROP_CONDITION,    // elle se conduit de la sorte.
  1757.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1758.         CMP_TOKEN ( FR_PART_NOUN_GENERAL,    JP_PROP_ALL,    NULL,    "sorte")
  1759.     ),
  1760.     JP_PREPOSITION(    "%1I",        JP_KIND_NONE,
  1761.         JP_PROP_NONE,        // 受動態の動作主 eg) Je suis aime <de> tout.
  1762.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_PASSIVE),
  1763.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1764.     ),
  1765.     JP_PREPOSITION(
  1766.         // 手段 eg) D'une main, il a ouvert la bo^te.
  1767.         // 理由 eg) D'habitude, nous nous levons @ sept heures.
  1768.         "%1D",        JP_KIND_NONE,
  1769.         JP_PROP_NONE,
  1770.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL,    IsDeOwner),
  1771.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1772.     ),
  1773.     JP_PREPOSITION(    "%1K",        JP_KIND_NONE,
  1774.         JP_PROP_PLACE,        // je sorti d'un bois.
  1775.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ACTION_MOVE | JP_PROP_PLACE),
  1776.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_PLACE)
  1777.     ),
  1778.     JP_PREPOSITION(    "%1K",        JP_KIND_NONE,
  1779.         JP_PROP_PLACE,        // l'h`tel se trouve {loign{ de la plage.
  1780.         CMP_TOKEN ( (FR_PART)(FR_PART_ADVERB_ALL | FR_PART_ADJECTIVE_ALL), JP_PROP_PLACE),
  1781.         CMP_TOKEN ( FR_PART_NOUN_ALL,    JP_PROP_PLACE)
  1782.     ),
  1783. // noun <de> number
  1784.     // la R{volution de 1789.
  1785.     JP_PREPOSITION(    "%1年の",        JP_KIND_NONE,
  1786.         JP_PROP_NONE,
  1787.         CMP_TOKEN ( FR_PART_NOUN_GENERAL,    JP_PROP_NONE),
  1788.         CMP_TOKEN ( FR_PART_NUMETRIC_NUMBER,JP_PROP_NONE)
  1789.     ),
  1790. // noun <de> noun
  1791.     JP_PREPOSITION(    "警官",        JP_KIND_NONE,
  1792.         JP_PROP_NONE,        // agent de police
  1793.         CMP_TOKEN( FR_PART_NOUN_GENERAL,    JP_PROP_NONE,    NULL,    "agent"),
  1794.         CMP_TOKEN( FR_PART_NOUN_GENERAL,    JP_PROP_NONE,    NULL,    "police"),
  1795.         ReplaceNounPrepNoun
  1796.     ),
  1797.     JP_PREPOSITION(    "一目",        JP_KIND_NONE,
  1798.         JP_PROP_NONE,        // une coup de oeil
  1799.         CMP_TOKEN( FR_PART_NOUN_GENERAL,    JP_PROP_NONE,    NULL,    "coup"),
  1800.         CMP_TOKEN( FR_PART_NOUN_GENERAL,    JP_PROP_NONE,    NULL,    "oeil"),
  1801.         ReplaceNounPrepNoun
  1802.     ),
  1803.     JP_PREPOSITION(    "教室",        JP_KIND_NONE,
  1804.         JP_PROP_NONE,        // une salle de classe
  1805.         CMP_TOKEN( FR_PART_NOUN_GENERAL,    JP_PROP_NONE,    NULL,    "salle"),
  1806.         CMP_TOKEN( FR_PART_NOUN_GENERAL,    JP_PROP_NONE,    NULL,    "classe"),
  1807.         ReplaceNounPrepNoun
  1808.     ),
  1809.     JP_PREPOSITION(    "%1N",        JP_KIND_NONE,
  1810.         JP_PROP_NONE,        // la maison <de> Paul
  1811.         CMP_TOKEN ( FR_PART_NOUN_ALL,    JP_PROP_ALL),
  1812.         CMP_TOKEN ( FR_PART_NOUN_ALL,    JP_PROP_ALL)
  1813.     )
  1814. };
  1815.  
  1816.  
  1817. static JP_PREPOSITION    jpr_among[] = {
  1818.     JP_PREPOSITION(        // Je suis le plus serieux <de> la classe.
  1819.         "%1N中で",        JP_KIND_NONE,
  1820.         JP_PROP_NONE,    
  1821.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL,    CanMostAmong),
  1822.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL),
  1823.         AddMostMongScore
  1824.     ),
  1825. };
  1826.  
  1827. PREPOSITION    dic_among[] = {
  1828.     { "de",    FR_PART_PREPOSIT_DE_AMONG,    JPPREPOSIT_DIC(jpr_among)    },
  1829. };
  1830.  
  1831. static JP_PREPOSITION    dic_depuis[] = {
  1832.     JP_PREPOSITION(    "%1K",                JP_KIND_NONE,    // depuis le hier.
  1833.         JP_PROP_TIME,
  1834.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1835.         CMP_TOKEN ( FR_PART_ADVERB_GENERAL,    JP_PROP_TIME | JP_PROP_PLACE)
  1836.     ),
  1837.     JP_PREPOSITION(    "%1年から",                JP_KIND_NONE,    // depuis 1959.
  1838.         JP_PROP_TIME,
  1839.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1840.         CMP_TOKEN ( FR_PART_NUMETRIC_NUMBER,JP_PROP_ALL)
  1841.     ),
  1842.     JP_PREPOSITION(    "%1前から",                JP_KIND_NONE,    // depuis deux ans
  1843.         JP_PROP_TIME,
  1844.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1845.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_UNIT)
  1846.     ),
  1847.     JP_PREPOSITION(    "%1K",                JP_KIND_NONE,    // depuis le matin
  1848.         JP_PROP_TIME,
  1849.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1850.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_TIME)
  1851.     ),
  1852.     JP_PREPOSITION(    "%1K",                    JP_KIND_NONE,
  1853.         JP_PROP_PLACE,
  1854.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1855.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1856.     )
  1857. };
  1858.  
  1859. static JP_PREPOSITION    dic_des[] = {
  1860.     JP_PREPOSITION(    "%a1直後に",                JP_KIND_NONE,
  1861.         JP_PROP_TIME,
  1862.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1863.         CMP_TOKEN ( FR_PART_SENTENCE_QUE,    JP_PROP_ALL)
  1864.     ),
  1865.     JP_PREPOSITION(    "%1直後に",            JP_KIND_NONE,
  1866.         JP_PROP_PLACE,
  1867.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1868.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_PLACE)
  1869.     ),
  1870.     JP_PREPOSITION(    "%1K",                JP_KIND_NONE,
  1871.         JP_PROP_TIME,
  1872.         CMP_TOKEN ( FR_PART_VERB_ALL,        JP_PROP_ALL),
  1873.         CMP_TOKEN ( FR_PART_ADVERB_GENERAL,    JP_PROP_TIME)
  1874.     ),
  1875.     JP_PREPOSITION(    "%1K",                JP_KIND_NONE,
  1876.         JP_PROP_TIME,
  1877.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1878.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1879.     ),
  1880. };
  1881.  
  1882. static JP_PREPOSITION    dic_devant[] = {
  1883.     JP_PREPOSITION(    "%1N前に",                JP_KIND_NONE,
  1884.         JP_PROP_PLACE,
  1885.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_MOVE),
  1886.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1887.     ),
  1888.     JP_PREPOSITION(    "%1N前に",                JP_KIND_NONE,
  1889.         JP_PROP_TIME,
  1890.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1891.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_TIME)
  1892.     ),
  1893.     JP_PREPOSITION(    "%1N前で",                JP_KIND_NONE,
  1894.         JP_PROP_PLACE,
  1895.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ACTION),
  1896.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1897.     ),
  1898.     JP_PREPOSITION(    "%1N前に",                JP_KIND_NONE,
  1899.         JP_PROP_PLACE,
  1900.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1901.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1902.     ),
  1903.     JP_PREPOSITION(    "%1N前に",                JP_KIND_NONE,
  1904.         JP_PROP_TIME,
  1905.         CMP_TOKEN ( FR_PART_VERB_ALL,        JP_PROP_ALL),
  1906.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_TIME)
  1907.     ),
  1908.     JP_PREPOSITION(    "%1N前に",                JP_KIND_NONE,
  1909.         JP_PROP_PLACE,
  1910.         CMP_TOKEN ( FR_PART_VERB_ALL,        JP_PROP_MOVE),
  1911.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1912.     ),
  1913.     JP_PREPOSITION(    "%1N前で",                JP_KIND_NONE,
  1914.         JP_PROP_PLACE,
  1915.         CMP_TOKEN ( FR_PART_VERB_ALL,        JP_PROP_ACTION),
  1916.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1917.     ),
  1918.     JP_PREPOSITION(    "%1N前に",                JP_KIND_NONE,
  1919.         JP_PROP_PLACE,
  1920.         CMP_TOKEN ( FR_PART_VERB_ALL,        JP_PROP_ALL),
  1921.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1922.     ),
  1923.     JP_PREPOSITION(    "%1N前の",                JP_KIND_NONE,
  1924.         JP_PROP_PLACE,
  1925.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL),
  1926.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1927.     ),
  1928. };
  1929.  
  1930. static JP_PREPOSITION    dic_derriere[] = {
  1931.     JP_PREPOSITION(    "%1N後に",                JP_KIND_NONE,
  1932.         JP_PROP_PLACE,
  1933.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1934.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1935.     ),
  1936.     JP_PREPOSITION(    "%1N後の",                JP_KIND_NONE,
  1937.         JP_PROP_PLACE,
  1938.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL),
  1939.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1940.     ),
  1941. };
  1942.  
  1943. static    JP_PREPOSITION    dic_en[] = {
  1944. // en + gerundif
  1945.     JP_PREPOSITION(    "%g1",            JP_KIND_NONE,
  1946.         JP_PROP_CONDITION,
  1947.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1948.         CMP_TOKEN ( FR_PART_VERB_ALL,        JP_PROP_ALL,    IsTokenPPresentVerb)
  1949.     ),
  1950.     JP_PREPOSITION(    "%1年",        JP_KIND_NONE,
  1951.         JP_PROP_TIME,
  1952.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1953.         CMP_TOKEN ( FR_PART_NUMETRIC_ALL,    JP_PROP_ALL)
  1954.     ),
  1955.     JP_PREPOSITION(    "遅れ",    JP_KIND_TA,
  1956.         JP_PROP_CONDITION | JP_PROP_TIME,
  1957.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1958.         CMP_TOKEN ( FR_PART_NOUN_GENERAL,    JP_PROP_ALL,        NULL,    "retard")
  1959.     ),
  1960.     JP_PREPOSITION(    "%1D",    JP_KIND_NONE,    // ce b[timent a {t{ construit en b{ton. コンクリートで
  1961.         JP_PROP_MATERIAL,
  1962.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1963.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_MATERIAL)
  1964.     ),
  1965.     JP_PREPOSITION(    "%1I",    JP_KIND_NONE,
  1966.         JP_PROP_TIME,
  1967.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1968.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_TIME)
  1969.     ),
  1970.     JP_PREPOSITION(    "%1I",    JP_KIND_NONE,
  1971.         JP_PROP_PLACE,
  1972.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_MOVE | JP_PROP_CONDITION),
  1973.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_PLACE)
  1974.     ),
  1975.     JP_PREPOSITION(    "%1D",    JP_KIND_NONE,
  1976.         JP_PROP_PLACE,
  1977.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  1978.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1979.     ),
  1980. // Noun + <en> + Noun
  1981.     JP_PREPOSITION(    "問題",    JP_KIND_RENTAISHI,
  1982.         JP_PROP_CONDITION,
  1983.         CMP_TOKEN( FR_PART_NOUN_GENERAL,    JP_PROP_ALL),
  1984.         CMP_TOKEN( FR_PART_NOUN_GENERAL,    JP_PROP_ALL,        NULL,    "question"),
  1985.         AddIdeumScore
  1986.     ),
  1987.     JP_PREPOSITION(    "%1N",    JP_KIND_NONE,    // les jardin en automne.
  1988.         JP_PROP_PLACE,
  1989.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL),
  1990.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_TIME)
  1991.     ),
  1992.     JP_PREPOSITION(    "%1I",    JP_KIND_NONE,
  1993.         JP_PROP_PLACE,
  1994.         CMP_TOKEN ( FR_PART_NONE ),
  1995.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  1996.     ),
  1997. };
  1998.  
  1999. static    JP_PREPOSITION    dic_jusque[] = {
  2000.     JP_PREPOSITION(    "%1まで",    JP_KIND_NONE,
  2001.         JP_PROP_CONDITION,
  2002.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  2003.         CMP_TOKEN ( FR_PART_PREPOSIT_A,        JP_PROP_PLACE | JP_PROP_TIME)
  2004.     ),
  2005. };
  2006.  
  2007. static    JP_PREPOSITION    dic_par[] = {
  2008.     JP_PREPOSITION(    "%1K",    JP_KIND_NONE,    // Entrez par ici.
  2009.         JP_PROP_CONDITION,
  2010.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL,    IsNotPassive),
  2011.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_PLACE)
  2012.     ),
  2013.     JP_PREPOSITION(    "%1Iよって",    JP_KIND_NONE,
  2014.         JP_PROP_ACTION,
  2015.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  2016.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  2017.     ),
  2018.     JP_PREPOSITION(    "%1Iよる",    JP_KIND_NONE,
  2019.         JP_PROP_CONDITION,
  2020.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL),
  2021.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  2022.     )
  2023. };
  2024.  
  2025. static    JP_PREPOSITION    jpr_parce[] = {
  2026.     JP_PREPOSITION(    "%s1ので",    JP_KIND_NONE,    // SV parce que SV.
  2027.         JP_PROP_CONDITION,
  2028.         CMP_TOKEN( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  2029.         CMP_TOKEN( FR_PART_SENTENCE_QUE,    JP_PROP_ALL),
  2030.         DemphasisChildSubject_GA
  2031.     ),
  2032.     JP_PREPOSITION(    "%s1ので",    JP_KIND_NONE,    // Parce que SV.
  2033.         JP_PROP_CONDITION,
  2034.         CMP_TOKEN( FR_PART_NONE,            JP_PROP_NONE),
  2035.         CMP_TOKEN( FR_PART_SENTENCE_QUE,    JP_PROP_ALL),
  2036.         DemphasisChildSubject_GA
  2037.     ),
  2038. };
  2039.  
  2040. static    JP_PREPOSITION    dic_pendant[] = {
  2041.     JP_PREPOSITION(    "%1N間",        JP_KIND_NONE,    // pendant tois jours.
  2042.         JP_PROP_TIME,
  2043.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  2044.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_TIME)
  2045.     ),
  2046.     JP_PREPOSITION(    "%1N間",        JP_KIND_NONE,    // pendant des kilometres,
  2047.         JP_PROP_PLACE,
  2048.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  2049.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  2050.     ),
  2051.     JP_PREPOSITION(    "%a1間",        JP_KIND_NONE,    // pendant que elle parlait.
  2052.         JP_PROP_PLACE,
  2053.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  2054.         CMP_TOKEN ( FR_PART_SENTENCE_QUE,    JP_PROP_ALL)
  2055.     ),
  2056. };
  2057.  
  2058. static    JP_PREPOSITION    dic_pour[] = {
  2059.     JP_PREPOSITION(    "%s1ように",    JP_KIND_NONE,
  2060.         JP_PROP_CONDITION,
  2061.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  2062.         CMP_TOKEN ( FR_PART_SENTENCE_QUE,    JP_PROP_ALL)
  2063.     ),
  2064.     JP_PREPOSITION(    "%a1ため",    JP_KIND_KEIYODOSHI,
  2065.         JP_PROP_CONDITION,
  2066.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  2067.         CMP_TOKEN ( FR_PART_VERB_INF,        JP_PROP_ALL)
  2068.     ),
  2069.     JP_PREPOSITION(    "%1I向かって",    JP_KIND_NONE,
  2070.         JP_PROP_PLACE,
  2071.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  2072.         CMP_TOKEN ( FR_PART_NOUN_GENERAL,    JP_PROP_PLACE)
  2073.     ),
  2074.     JP_PREPOSITION(    "%1<にとって>",    JP_KIND_NONE,        // c'est plaisir pour moi.
  2075.         JP_PROP_CONDITION,
  2076.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_CONDITION,    IsSentenceSVA),
  2077.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_HUMAN)
  2078.     ),
  2079.     JP_PREPOSITION(    "%1<のために>",    JP_KIND_NONE,
  2080.         JP_PROP_CONDITION,
  2081.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  2082.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  2083.     ),
  2084.     JP_PREPOSITION(    "%s1ための",    JP_KIND_NONE,
  2085.         JP_PROP_CONDITION,
  2086.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL),
  2087.         CMP_TOKEN ( FR_PART_VERB_ALL,        JP_PROP_ALL)
  2088.     ),
  2089.     JP_PREPOSITION(    "%s1ために",    JP_KIND_NONE,
  2090.         JP_PROP_ACTION,
  2091.         CMP_TOKEN ( FR_PART_VERB_ALL,        JP_PROP_ALL),
  2092.         CMP_TOKEN ( FR_PART_VERB_ALL,        JP_PROP_ALL)
  2093.     ),
  2094.     JP_PREPOSITION(    "%1Nために",    JP_KIND_NONE,
  2095.         JP_PROP_ACTION,
  2096.         CMP_TOKEN ( FR_PART_NONE),
  2097.         CMP_TOKEN ( FR_PART_NONE)
  2098.     )
  2099. };
  2100.  
  2101. static    JP_PREPOSITION    dic_puisque[] = {
  2102.     JP_PREPOSITION(    "%a1ので",    JP_KIND_NONE,
  2103.         JP_PROP_CONDITION,
  2104.         CMP_TOKEN ( FR_PART_SENTENCE_ALL),
  2105.         CMP_TOKEN ( FR_PART_SENTENCE_ALL)
  2106.     ),
  2107. };
  2108.  
  2109. static    JP_PREPOSITION    dic_quoique[] = {
  2110.     JP_PREPOSITION(    "%s1とはいえ",    JP_KIND_NONE,
  2111.         JP_PROP_CONDITION,
  2112.         CMP_TOKEN ( FR_PART_SENTENCE_ALL,    JP_PROP_ALL),
  2113.         CMP_TOKEN ( FR_PART_SENTENCE_ALL,    JP_PROP_ALL)
  2114.     ),
  2115. };
  2116.  
  2117. static    JP_PREPOSITION    dic_sans[] = {
  2118.     JP_PREPOSITION(    "%n1",    JP_KIND_DA,
  2119.         JP_PROP_CONDITION,
  2120.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  2121.         CMP_TOKEN ( FR_PART_SENTENCE_QUE,    JP_PROP_ALL)
  2122.     ),
  2123.     JP_PREPOSITION(    "%n1ないで",    JP_KIND_NONE,
  2124.         JP_PROP_CONDITION,
  2125.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  2126.         CMP_TOKEN ( FR_PART_VERB_INF,        JP_PROP_ALL)
  2127.     ),
  2128.     JP_PREPOSITION(    "%1なし",    JP_KIND_DA,
  2129.         JP_PROP_CONDITION,
  2130.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  2131.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  2132.     )
  2133. };
  2134.  
  2135. static    JP_PREPOSITION    dic_sous[] = {
  2136.     JP_PREPOSITION(    "%1N下に",    JP_KIND_NONE,
  2137.         JP_PROP_PLACE,
  2138.         CMP_TOKEN ( FR_PART_VERB_ALL,    JP_PROP_ALL),
  2139.         CMP_TOKEN ( FR_PART_NOUN_ALL,    JP_PROP_ALL)
  2140.     ),
  2141.     JP_PREPOSITION(    "%1N下の",    JP_KIND_NONE,
  2142.         JP_PROP_PLACE,
  2143.         CMP_TOKEN ( FR_PART_NOUN_ALL,    JP_PROP_ALL),
  2144.         CMP_TOKEN ( FR_PART_NOUN_ALL,    JP_PROP_ALL)
  2145.     )
  2146. };
  2147.  
  2148. static    JP_PREPOSITION    dic_sur[] = {
  2149.     JP_PREPOSITION(    "%1N上に",    JP_KIND_NONE,
  2150.         JP_PROP_PLACE,
  2151.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_CONDITION | JP_PROP_MOVE),
  2152.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  2153.     ),
  2154.     JP_PREPOSITION(    "%1N上で",    JP_KIND_NONE,
  2155.         JP_PROP_PLACE,
  2156.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  2157.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  2158.     ),
  2159.     JP_PREPOSITION(    "%1N上の",    JP_KIND_NONE,
  2160.         JP_PROP_PLACE,
  2161.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL),
  2162.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  2163.     )
  2164. };
  2165.  
  2166. static    JP_PREPOSITION    dic_tandis[] = {
  2167.     JP_PREPOSITION(    "%s1が",    JP_KIND_NONE,        // l'un d'eux est tr}s instruit, tandis que l'autre est ignorant.
  2168.         JP_PROP_CONDITION,
  2169.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  2170.         CMP_TOKEN ( FR_PART_SENTENCE_QUE,    JP_PROP_CONDITION)
  2171.     ),
  2172.     JP_PREPOSITION(    "%a1間に",    JP_KIND_NONE,        // Tandis qu'elle regardais la vitrine, un voleur lui a vol{ sa bicyclette.
  2173.         JP_PROP_TIME,
  2174.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  2175.         CMP_TOKEN ( FR_PART_SENTENCE_QUE,    JP_PROP_ALL)
  2176.     ),
  2177. };
  2178.  
  2179. static JP_PREPOSITION    jpr_Lorsque[] = {
  2180.     // C'est lorsque S + V.
  2181.     JP_PREPOSITION(    "%a1時",    JP_KIND_DA,
  2182.         JP_PROP_TIME,
  2183.         CMP_TOKEN( FR_PART_NONE,            JP_PROP_ALL),
  2184.         CMP_TOKEN( FR_PART_SENTENCE_ALL,    JP_PROP_ALL),
  2185.         EmphasisChildSubject_GA
  2186.         ),
  2187.     JP_PREPOSITION(    "%a1時",    JP_KIND_NONE,
  2188.         JP_PROP_TIME,
  2189.         CMP_TOKEN( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  2190.         CMP_TOKEN( FR_PART_SENTENCE_ALL,    JP_PROP_ALL),
  2191.         EmphasisChildSubject_GA
  2192.         ),
  2193. };
  2194.  
  2195. static JP_PREPOSITION    jpr_Quand[] = {
  2196.     // C'est quand S + V.
  2197.     JP_PREPOSITION(    "%a1時",    JP_KIND_DA,
  2198.         JP_PROP_TIME,
  2199.         CMP_TOKEN( FR_PART_NONE,            JP_PROP_ALL),
  2200.         CMP_TOKEN( FR_PART_SENTENCE_ALL,    JP_PROP_ALL),
  2201.         EmphasisChildSubject_GA
  2202.     ),
  2203.     JP_PREPOSITION(    "%a1時",    JP_KIND_NONE,
  2204.         JP_PROP_TIME,
  2205.         CMP_TOKEN( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  2206.         CMP_TOKEN( FR_PART_SENTENCE_ALL,    JP_PROP_ALL),
  2207.         EmphasisChildSubject_GA
  2208.     ),
  2209. };
  2210.  
  2211. static JP_PREPOSITION    jpr_Si[] = {
  2212.     JP_PREPOSITION(    "%i1ば",     JP_KIND_NONE,    
  2213.         JP_PROP_CONDITION,
  2214.         CMP_TOKEN( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  2215.         CMP_TOKEN( FR_PART_SENTENCE_ALL,    JP_PROP_ALL),
  2216.         EmphasisChildSubject_GA
  2217.     ),
  2218. };
  2219.  
  2220.  
  2221. static    JP_PREPOSITION    dic_vers[] = {
  2222.     JP_PREPOSITION(    "%1N方に",    JP_KIND_NONE,            // tormer les yeux vers elle.
  2223.         JP_PROP_CONDITION,
  2224.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_MOVE),
  2225.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_PLACE | JP_PROP_HUMAN | JP_PROP_THING)
  2226.     ),
  2227.     JP_PREPOSITION(    "%1頃",        JP_KIND_KEIYODOSHI,            // il viendra vers midi.
  2228.         JP_PROP_CONDITION,
  2229.         CMP_TOKEN ( FR_PART_VERB_GENERAL,    JP_PROP_ALL),
  2230.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_TIME)
  2231.     ),
  2232.     JP_PREPOSITION(    "%1N近く",    JP_KIND_KEIYODOSHI,            // il s'att]t{ vers la sortie.
  2233.         JP_PROP_CONDITION,
  2234.         CMP_TOKEN ( FR_PART_SENTENCE_ALL,    JP_PROP_ALL),
  2235.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL)
  2236.     ),
  2237.     JP_PREPOSITION(    "%1N近く",    JP_KIND_KEIYODOSHI,
  2238.         JP_PROP_CONDITION,
  2239.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_ALL),
  2240.         CMP_TOKEN ( FR_PART_NOUN_ALL,        JP_PROP_PLACE)
  2241.     ),
  2242. };
  2243.  
  2244. PREPOSITION    dic_DeInf[] = {
  2245.     { "de_inf",    FR_PART_PREPOSIT_DE_INF,    JPPREPOSIT_DIC(jpprepDeInfDE)},
  2246. };
  2247.  
  2248.  
  2249. PREPOSITION prepositionTable[] = {
  2250.     { "@",        FR_PART_PREPOSIT_A,        JPPREPOSIT_DIC(dic_a)        },
  2251.     { "autour de", FR_PART_PREPOSIT_AUTOUR_DE,    JPPREPOSIT_DIC(dic_autourDe)        },
  2252.     { "autour du", FR_PART_PREPOSIT_AUTOUR_DE,    JPPREPOSIT_DIC(dic_autourDe)        },
  2253.     { "avant",    FR_PART_PREPOSIT_AVANT,        JPPREPOSIT_DIC(dic_avant)    },
  2254.     { "avec",    FR_PART_PREPOSIT_AVEC,        JPPREPOSIT_DIC(dic_avec)    },
  2255.     { "apr}s",    FR_PART_PREPOSIT_APRES,        JPPREPOSIT_DIC(dic_pres)    },
  2256.     { "chez",    FR_PART_PREPOSIT_CHEZ,        JPPREPOSIT_DIC(dic_chez)    },
  2257.     { "comme",    FR_PART_PREPOSIT_COMME,        JPPREPOSIT_DIC(dic_comme)    },
  2258.     { "contre",    FR_PART_PREPOSIT_CONTRE,    JPPREPOSIT_DIC(dic_contre)    },
  2259.     { "dans",    FR_PART_PREPOSIT_DANS,        JPPREPOSIT_DIC(dic_dans)    },
  2260.     { "de",        FR_PART_PREPOSIT_DE,        JPPREPOSIT_DIC(dic_jpr_de)},
  2261.     { "depuis",    FR_PART_PREPOSIT_DEPUIS,    JPPREPOSIT_DIC(dic_depuis)    },
  2262.     { "d}s",    FR_PART_PREPOSIT_DES,        JPPREPOSIT_DIC(dic_des)        },
  2263.     { "devant",    FR_PART_PREPOSIT_DEVANT,    JPPREPOSIT_DIC(dic_devant)    },
  2264.     { "derri}re",FR_PART_PREPOSIT_DERRIERE,    JPPREPOSIT_DIC(dic_derriere)    },
  2265.     { "en",        FR_PART_PREPOSIT_EN,        JPPREPOSIT_DIC(dic_en)        },
  2266.     { "jusque",    FR_PART_PREPOSIT_JUSQUE,    JPPREPOSIT_DIC(dic_jusque)    },
  2267.     { "par",    FR_PART_PREPOSIT_PAR,        JPPREPOSIT_DIC(dic_par)        },
  2268.     { "parce",    FR_PART_PREPOSIT_PARCE,        JPPREPOSIT_DIC(jpr_parce)    },
  2269.     { "pendant",FR_PART_PREPOSIT_PENDANT,    JPPREPOSIT_DIC(dic_pendant)},
  2270.     { "pour",    FR_PART_PREPOSIT_POUR,        JPPREPOSIT_DIC(dic_pour)    },
  2271.     { "puisque",FR_PART_PREPOSIT_PUISQUE,    JPPREPOSIT_DIC(dic_puisque) },
  2272.     { "quoique",FR_PART_PREPOSIT_QUOIQUE,    JPPREPOSIT_DIC(dic_quoique)},
  2273.     { "sans",    FR_PART_PREPOSIT_SANS,        JPPREPOSIT_DIC(dic_sans)    },
  2274.     { "sous",    FR_PART_PREPOSIT_SOUS,        JPPREPOSIT_DIC(dic_sous)    },
  2275.     { "sur",    FR_PART_PREPOSIT_SUR,        JPPREPOSIT_DIC(dic_sur)        },
  2276.     { "tandis",    FR_PART_PREPOSIT_TANDIS,    JPPREPOSIT_DIC(dic_tandis)    },
  2277.     { "vers",    FR_PART_PREPOSIT_VERS,        JPPREPOSIT_DIC(dic_vers)    },
  2278.     { "lorsque",FR_PART_PREPOSIT_LORSQUE,    JPPREPOSIT_DIC(jpr_Lorsque)    },
  2279. //    { "que",    FR_PART_SENTENCE_QUE,        JPCONJUNCTION_DIC(conjQue)        },
  2280.     { "quand",    FR_PART_PREPOSIT_QUAND,        JPPREPOSIT_DIC(jpr_Quand)    },
  2281.     { "si",        FR_PART_PREPOSIT_SI,        JPPREPOSIT_DIC(jpr_Si)        },
  2282.  
  2283.     { "",        FR_PART_NONE,            NULL        , 0}    // End Code
  2284. };
  2285.  
  2286. JP_COMBINE    jpCombineCar[] = {
  2287.     JP_COMBINE("%s1。というのは、%s2から",
  2288.         (FR_PART)(FR_PART_COMBINE | FR_PART_SENTENCE_NORMAL),
  2289.         FR_PART_SENTENCE_NORMAL,JP_PROP_NONE,
  2290.         FR_PART_SENTENCE_ALL,    JP_PROP_NONE
  2291.     ),
  2292. };
  2293.  
  2294. //
  2295. // FR_PART_SENTENCEのぶら下っている'plus'/'moins'を探す
  2296. //
  2297. TOKEN
  2298. *SearchPlus(TOKEN *p, char *key)
  2299. {
  2300.     TOKEN    *plus = SearchToken(key, p->child);
  2301.     if(plus)    return(plus);
  2302.  
  2303.     if(IsObjectMatch(p, FR_PART_SENTENCE_ALL)
  2304.     &&  p->object2
  2305.     && (p->object2->frPart & FR_PART_VERB))
  2306.         plus = SearchToken(key, p->object2->child);
  2307.  
  2308.     return(plus);
  2309. }
  2310.  
  2311.  
  2312. BOOL
  2313. HasPlus(TOKEN *p)
  2314. {
  2315.     if(SearchPlus(p, "plus"))
  2316.         return(TRUE);
  2317.  
  2318.     return(FALSE);
  2319. }
  2320.  
  2321. BOOL
  2322. HasMoins(TOKEN *p)
  2323. {
  2324.     if(SearchPlus(p, "moins"))
  2325.         return(TRUE);
  2326.  
  2327.     return(FALSE);
  2328. }
  2329.  
  2330. void
  2331. MakePlusPlus(TOKEN *p)
  2332. {
  2333.     TOKEN    *plus;
  2334.  
  2335.     plus = SearchPlus(p->object1, "plus");
  2336.     if(plus)    plus->prtControl = PRT_CONTROL_DISABLE;
  2337.  
  2338.     plus = SearchPlus(p->object2, "plus");
  2339.     if(plus)    plus->prtControl = PRT_CONTROL_DISABLE;
  2340.  
  2341.     // 彼の行動を考え<た>ほど -> 彼の行動を考え<る>ほど
  2342.     p->object1->frTense = FR_TENSE_PRESENT;
  2343.     p->object2->frTense = FR_TENSE_PRESENT;
  2344. }
  2345.  
  2346. void
  2347. MakePlusMoins(TOKEN *p)
  2348. {
  2349.     TOKEN    *plus;
  2350.  
  2351.     plus = SearchPlus(p->object1, "plus");
  2352.     if(plus)    plus->prtControl = PRT_CONTROL_DISABLE;
  2353.  
  2354.     plus = SearchPlus(p->object2, "moins");
  2355.     if(plus)    plus->prtControl = PRT_CONTROL_DISABLE;
  2356.  
  2357.     // 彼の行動を考え<た>ほど -> 彼の行動を考え<る>ほど
  2358.     p->object1->frTense = FR_TENSE_PRESENT;
  2359.     p->object2->frTense = FR_TENSE_PRESENT;
  2360. }
  2361.  
  2362. BOOL
  2363. HasBien(TOKEN *p)
  2364. {
  2365.     TOKEN    *q = SearchToken("bien", p->child);
  2366.     if(q) {
  2367.         q->prtControl = PRT_CONTROL_DISABLE;
  2368.         return(TRUE);
  2369.     }
  2370.     return(FALSE);
  2371. }
  2372.  
  2373. BOOL
  2374. HasOrderVerb(TOKEN *p)
  2375. {
  2376.     TOKEN    *q;
  2377.  
  2378.     if(p->object1
  2379.     && HasOrderVerb(p->object1))    return(TRUE);
  2380.  
  2381.     if(p->object2
  2382.     && HasOrderVerb(p->object2))    return(TRUE);
  2383.  
  2384.     for(q = p; q; q = q->next) {
  2385.         if(p->frTense & FR_TENSE_ORDER) 
  2386.             return(TRUE);
  2387.     }
  2388.     return(FALSE);
  2389. }
  2390.  
  2391. BOOL
  2392. HasLevel3Subject(TOKEN *v)
  2393. {
  2394.     if(v->subject
  2395.     && (v->subject->frAttrib & FR_ATTRIB_LEVEL3))
  2396.         return(TRUE);
  2397.  
  2398.     return(FALSE);
  2399. }
  2400.  
  2401. BOOL
  2402. CanLevel3Verb(TOKEN *v)
  2403. {
  2404.     if(v
  2405.     && (v->frAttrib & FR_ATTRIB_LEVEL3))
  2406.         return(TRUE);
  2407.  
  2408.     return(FALSE);
  2409. }
  2410.  
  2411. void
  2412. MakeObject1Order(TOKEN *p)
  2413. {
  2414.     if(p
  2415.     && p->object1
  2416.     && (p->object1->frPart & FR_PART_VERB)) {
  2417.         p->object1->frTense = FR_TENSE_ORDER;
  2418.     }
  2419. }
  2420.  
  2421. void
  2422. MakeObject2Order(TOKEN *p)
  2423. {
  2424.     if(p
  2425.     && p->object2
  2426.     && (p->object2->frPart & FR_PART_VERB)) {
  2427.         p->object2->frTense = FR_TENSE_ORDER;
  2428.     }
  2429. }
  2430.  
  2431. void
  2432. AddObject2FrTenseOrder(TOKEN *p)
  2433. {
  2434.     if(p
  2435.     && p->object2
  2436.     && (p->object2->frPart & FR_PART_VERB)) {
  2437.         p->object2->frTense = (FR_TENSE)(p->object2->frTense | FR_TENSE_ORDER);
  2438.     }
  2439. }
  2440.  
  2441. JP_COMBINE    jpCombineComma[] = {
  2442.     JP_COMBINE("%s1、%t2",            JP_KIND_NONE,
  2443.         FR_PART_COMBINE_VERB,
  2444.         FR_PART_NONE,                JP_PROP_NONE,    NULL,    // 文頭にきた場合
  2445.         FR_PART_SENTENCE_NORMAL,    JP_PROP_NONE,    NULL),
  2446.     // Plus nous avons des souffrances, plus nous savons consoler les autres.
  2447.     JP_COMBINE("%s1ほど、%t2",        JP_KIND_NONE,
  2448.         FR_PART_COMBINE_VERB,
  2449.         FR_PART_SENTENCE_NORMAL,    JP_PROP_NONE,    HasPlus,
  2450.         FR_PART_SENTENCE_NORMAL,    JP_PROP_NONE,    HasPlus,
  2451.         MakePlusPlus),
  2452.     // Plus je r{fl{chis @ sa conduite, moins je comprends cet homme.
  2453.     JP_COMBINE("%s1ほど、%n2なくな",    JP_KIND_GODAN_RA,
  2454.         FR_PART_COMBINE_VERB,
  2455.         FR_PART_SENTENCE_NORMAL,    JP_PROP_NONE,    HasPlus,
  2456.         FR_PART_SENTENCE_NORMAL,    JP_PROP_NONE,    HasMoins,
  2457.         MakePlusMoins),
  2458.  
  2459.     JP_COMBINE("たしかに%s1が、%t2",    JP_KIND_NONE,
  2460.         FR_PART_COMBINE_VERB,
  2461.         FR_PART_SENTENCE_QUE,        JP_PROP_NONE,    HasBien,
  2462.         FR_PART_SENTENCE_NORMAL,    JP_PROP_NONE,    NULL,
  2463.         // <que> S+V事 -> S+V
  2464.         ReplaceObject1),
  2465.     JP_COMBINE("%z1、%t2",
  2466.         FR_PART_COMBINE_VERB,
  2467.         FR_PART_SENTENCE_PPAST,        JP_PROP_NONE,
  2468.         FR_PART_SENTENCE_NORMAL,    JP_PROP_NONE),
  2469. #if 0
  2470.         // 過去分詞構文 eg) Ils s'avancent, lui demandant de danser.    
  2471.     JP_COMBINE("%z2、%st1",
  2472.         (FR_PART)(FR_PART_COMBINE_VERB | FR_PART_SENTENCE_NORMAL),
  2473.         FR_PART_SENTENCE_ALL,        JP_PROP_NONE,
  2474.         FR_PART_SENTENCE_PPRESENT,    JP_PROP_NONE),
  2475.     JP_COMBINE("%z1、%t2",
  2476.         (FR_PART)(FR_PART_COMBINE_VERB | FR_PART_SENTENCE_NORMAL),
  2477.         FR_PART_SENTENCE_PPRESENT,    JP_PROP_NONE,
  2478.         FR_PART_SENTENCE_NORMAL,    JP_PROP_NONE),
  2479. #endif
  2480.     // Il arrive, juge la situation.
  2481.     // 彼は来て、状況を判断する < 彼は来て、状況を判断しろ 
  2482.     JP_COMBINE("%z1、%t2",            JP_KIND_NONE,
  2483.         (FR_PART)(FR_PART_COMBINE_VERB | FR_PART_SENTENCE_NORMAL),
  2484.         FR_PART_SENTENCE_ALL,        JP_PROP_NONE,    HasLevel3Subject,
  2485.         FR_PART_SENTENCE_ALL,        JP_PROP_NONE,    CanLevel3Verb,
  2486.         CancelTenseOrder),
  2487.  
  2488.     // Montez<,> grimpez, pers{v{rez.
  2489.     JP_COMBINE("%z1、%t2",        JP_KIND_NONE,
  2490.         (FR_PART)(FR_PART_COMBINE_VERB | FR_PART_SENTENCE_ORDER),
  2491.         FR_PART_SENTENCE_ORDER,        JP_PROP_NONE, NULL,
  2492.         FR_PART_SENTENCE_ALL,        JP_PROP_NONE, HasOrderVerb),
  2493.     // Attenz un instant, je viens.
  2494.     JP_COMBINE("%s1、%t2",        JP_KIND_NONE,
  2495.         FR_PART_COMBINE_VERB,
  2496.         FR_PART_SENTENCE_ORDER,        JP_PROP_NONE,    NULL,
  2497.         FR_PART_SENTENCE_NORMAL,    JP_PROP_NONE,    NULL,
  2498.         MakeObject1Order),
  2499.  
  2500.     JP_COMBINE("%z1、%t2",        JP_KIND_NONE,
  2501.         FR_PART_COMBINE_VERB,
  2502.         FR_PART_SENTENCE_NORMAL,    JP_PROP_NONE,    NULL,
  2503.         FR_PART_SENTENCE_NORMAL,    JP_PROP_NONE,    IsNotParticiple),
  2504.     JP_COMBINE("%z1、%t2",        JP_KIND_NONE,
  2505.         FR_PART_COMBINE_VERB,
  2506.         FR_PART_SENTENCE_ALL,        JP_PROP_NONE,    IsNotParticiple,
  2507.         FR_PART_SENTENCE_NO_SUBJECT,JP_PROP_NONE,    IsNotParticiple),
  2508.  
  2509.     JP_COMBINE("%z1、%t2",            JP_KIND_NONE,
  2510.         FR_PART_COMBINE_VERB,
  2511.         FR_PART_SENTENCE_ALL,        JP_PROP_NONE,    NULL,
  2512.         FR_PART_SENTENCE_ALL,        JP_PROP_NONE,    IsNotParticiple),
  2513.  
  2514.     // Oui, j'ai un fr}re.
  2515.     JP_COMBINE("%s1、%t2",
  2516.         FR_PART_COMBINE_VERB,
  2517.         FR_PART_INDEPENDENCE_ALL,    JP_PROP_NONE,
  2518.         FR_PART_SENTENCE_ALL,        JP_PROP_NONE),
  2519.  
  2520.     JP_COMBINE("%z1、%t2",        FR_PART_NONE,
  2521.         FR_PART_NOUN_ALL,        JP_PROP_NONE,
  2522.         FR_PART_NOUN_ALL,        JP_PROP_NONE),
  2523.     JP_COMBINE("%z1、%t2",        FR_PART_NONE,
  2524.         FR_PART_ADVERB_ALL,        JP_PROP_NONE,
  2525.         FR_PART_ADVERB_ALL,        JP_PROP_NONE),
  2526.     JP_COMBINE("%z1、%t2",        FR_PART_NONE,
  2527.         FR_PART_ADJECTIVE_ALL,    JP_PROP_NONE,
  2528.         FR_PART_ADJECTIVE_ALL,    JP_PROP_NONE),
  2529.     JP_COMBINE("%z1、%t2",        FR_PART_NONE,
  2530.         FR_PART_PREPOSIT_ALL,    JP_PROP_NONE,
  2531.         FR_PART_PREPOSIT_ALL,    JP_PROP_NONE)
  2532. };
  2533.  
  2534. JP_COMBINE    jpCombineCoron[] = {
  2535.     JP_COMBINE("%st1。%t2",
  2536.         FR_PART_COMBINE_VERB,
  2537.         FR_PART_SENTENCE_ALL,    JP_PROP_NONE,
  2538.         FR_PART_SENTENCE_ALL,    JP_PROP_NONE),
  2539. };
  2540.  
  2541. JP_COMBINE    jpCombineSemicoron[] = {
  2542.     JP_COMBINE("%st1。%t2",
  2543.         FR_PART_COMBINE_VERB,
  2544.         FR_PART_SENTENCE_ALL,    JP_PROP_NONE,
  2545.         FR_PART_SENTENCE_ALL,    JP_PROP_NONE),
  2546. };
  2547.  
  2548. JP_COMBINE    jpCombineDonc[] = {
  2549.     JP_COMBINE("%s1。だから、%t2",
  2550.         FR_PART_COMBINE_VERB,
  2551.         FR_PART_SENTENCE_NORMAL,JP_PROP_NONE,
  2552.         FR_PART_SENTENCE_ALL,    JP_PROP_NONE
  2553.     ),
  2554.     JP_COMBINE("%s1。だから、%t2",
  2555.         FR_PART_COMBINE_VERB,
  2556.         (FR_PART)~1,            JP_PROP_NONE,
  2557.         (FR_PART)~1,            JP_PROP_NONE
  2558.     )
  2559. };
  2560.  
  2561. BOOL
  2562. HasAttribNous(TOKEN *p)
  2563. {
  2564.     if((p->frAttrib & FR_ATTRIB_LEVEL1)
  2565.     && (p->frAttrib & FR_ATTRIB_PLURAL))
  2566.         return(TRUE);
  2567.  
  2568.     return(FALSE);
  2569. }
  2570.  
  2571. BOOL
  2572. HasAttribVous(TOKEN *p)
  2573. {
  2574.     if((p->frAttrib & FR_ATTRIB_LEVEL2)
  2575.     && (p->frAttrib & FR_ATTRIB_PLURAL))
  2576.         return(TRUE);
  2577.  
  2578.     return(FALSE);
  2579. }
  2580.  
  2581. JP_COMBINE    jpCombineEt[] = {
  2582.     // Il arrive et juge la situation.
  2583.     // 彼は来て、状況を判断する < 彼は来て、状況を判断しろ 
  2584.     JP_COMBINE("%z1、%t2",            JP_KIND_NONE,
  2585.         (FR_PART)(FR_PART_COMBINE_VERB | FR_PART_SENTENCE_NORMAL),
  2586.         FR_PART_SENTENCE_ALL,        JP_PROP_NONE,    HasLevel3Subject,
  2587.         FR_PART_SENTENCE_ALL,        JP_PROP_NONE,    CanLevel3Verb,
  2588.         CancelTenseOrder),
  2589.     // Montez et grimpez(FR_TENSE_ORDER).
  2590.     JP_COMBINE("%z1、%t2",            JP_KIND_NONE,
  2591.         (FR_PART)(FR_PART_COMBINE_VERB | FR_PART_SENTENCE_ORDER),
  2592.         FR_PART_SENTENCE_ORDER,        JP_PROP_NONE,    NULL,
  2593.         FR_PART_SENTENCE_ALL,        JP_PROP_NONE,    HasOrderVerb
  2594.     ),
  2595.     // Montez et grimpez(FR_TENSE_PRESENT).
  2596.     // Nous, Vousと命令形が同一の場合が多い。
  2597.     JP_COMBINE("%z1、%t2",            JP_KIND_NONE,
  2598.         (FR_PART)(FR_PART_COMBINE_VERB | FR_PART_SENTENCE_ORDER),
  2599.         FR_PART_SENTENCE_ORDER,        JP_PROP_NONE,    HasAttribVous,
  2600.         FR_PART_SENTENCE_NO_SUBJECT,JP_PROP_NONE,    HasAttribVous,
  2601.         MakeObject2Order
  2602.     ),
  2603.     JP_COMBINE("%z1、%t2",            JP_KIND_NONE,
  2604.         (FR_PART)(FR_PART_COMBINE_VERB | FR_PART_SENTENCE_ORDER),
  2605.         FR_PART_SENTENCE_ORDER,        JP_PROP_NONE,    HasAttribNous,
  2606.         FR_PART_SENTENCE_NO_SUBJECT,JP_PROP_NONE,    HasAttribNous,
  2607.         MakeObject2Order
  2608.     ),
  2609. #if 0
  2610.     JP_COMBINE("%z1、%o2",            JP_KIND_NONE,
  2611.         (FR_PART)(FR_PART_COMBINE_VERB | FR_PART_SENTENCE_ORDER),
  2612.         FR_PART_SENTENCE_ORIGIN,    JP_PROP_NONE,    NULL,
  2613.         FR_PART_SENTENCE_ORDER,        JP_PROP_NONE,    CanVerbOrder
  2614.     ),
  2615. #endif
  2616.     // 原型動詞同志の命令形
  2617.     // eg) Voir Naples et mourir.
  2618.     JP_COMBINE("%z1、%t2",            JP_KIND_NONE,
  2619.         (FR_PART)(FR_PART_COMBINE_VERB | FR_PART_SENTENCE_ORDER),
  2620.         FR_PART_SENTENCE_ORIGIN,    JP_PROP_NONE,    IsTenseOrigin,
  2621.         FR_PART_SENTENCE_NO_SUBJECT,JP_PROP_NONE,    IsTenseOrigin,
  2622.         AddObject2FrTenseOrder
  2623.     ),
  2624.     JP_COMBINE("%z1、%t2",
  2625.         FR_PART_COMBINE_VERB,
  2626.         FR_PART_SENTENCE_ALL,        JP_PROP_NONE,
  2627.         FR_PART_SENTENCE_ALL,        JP_PROP_NONE
  2628.     ),
  2629.     JP_COMBINE("%z1と%t2",
  2630.         (FR_PART)(FR_PART_COMBINE_NOUN | FR_PART_NOUN_ALL),
  2631.         FR_PART_NOUN_ALL,            JP_PROP_NONE,
  2632.         FR_PART_NOUN_ALL,            JP_PROP_NONE
  2633.     ),
  2634.     JP_COMBINE("%z1、%t2",
  2635.         FR_PART_COMBINE_ADJECTIVE,
  2636.         (FR_PART)(FR_PART_ADVERB_ALL | FR_PART_ADJECTIVE_ALL),    JP_PROP_NONE,
  2637.         (FR_PART)(FR_PART_ADVERB_ALL | FR_PART_ADJECTIVE_ALL),    JP_PROP_NONE
  2638.     ),
  2639.     JP_COMBINE("%z1、%t2",
  2640.         FR_PART_COMBINE_PREPOSIT,
  2641.         FR_PART_PREPOSIT_ALL,        JP_PROP_NONE,
  2642.         FR_PART_PREPOSIT_ALL,        JP_PROP_NONE
  2643.     ),
  2644.     // which == NULLの時のため同じ候補を並べる
  2645.     JP_COMBINE("%z1と%t2",
  2646.         FR_PART_NONE,
  2647.         FR_PART_NOUN_ALL,        JP_PROP_NONE,
  2648.         FR_PART_NOUN_ALL,        JP_PROP_NONE
  2649.     )
  2650. };
  2651.  
  2652. JP_COMBINE    jpCombineMais[] = {
  2653.     // Ne restez pas enferm{ si longtemps, mais S+V
  2654.     // -> そんなに長い時間閉じ込めれらたままで<いなく>、
  2655.     // -> そんなに長い時間閉じ込めれらたままで<いないで>、
  2656.     JP_COMBINE("%a1D、%s2",        JP_KIND_NONE,
  2657.         (FR_PART)(FR_PART_COMBINE_VERB | FR_PART_SENTENCE_ORDER),
  2658.         FR_PART_SENTENCE_ORDER,    JP_PROP_NEGATIVE,    IsJpKind_KAMIICHI,
  2659.         FR_PART_SENTENCE_ALL,    JP_PROP_NONE,        NULL
  2660.     ),
  2661.     // Aime la verite, mais pardonne a l'erreur.
  2662.     JP_COMBINE("%s1、しかし、%s2",    JP_KIND_NONE,
  2663.         (FR_PART)(FR_PART_COMBINE_VERB | FR_PART_SENTENCE_ORDER),
  2664.         FR_PART_SENTENCE_ORDER,    JP_PROP_NONE,        NULL,
  2665.         FR_PART_SENTENCE_ALL,    JP_PROP_NONE,        NULL
  2666.     ),
  2667.     JP_COMBINE("%s1が、%s2",
  2668.         (FR_PART)(FR_PART_COMBINE_VERB | FR_PART_SENTENCE_NORMAL),
  2669.         FR_PART_SENTENCE_ALL,    JP_PROP_NONE,
  2670.         FR_PART_SENTENCE_ALL,    JP_PROP_NONE
  2671.     ),
  2672.     // 文頭の場合
  2673.     // Mais, o| sont des neiges d'antant?
  2674.     JP_COMBINE("しかし、%s2",
  2675.         FR_PART_COMBINE_VERB,
  2676.         FR_PART_NONE,            JP_PROP_NONE,
  2677.         FR_PART_SENTENCE_ALL,    JP_PROP_NONE
  2678.     ),
  2679. };
  2680.  
  2681. JP_COMBINE    jpCombineNi[] = {
  2682.     JP_COMBINE("%c1%s2",    FR_PART_COMBINE_NOUN,
  2683.         FR_PART_NOUN_VERB,        JP_PROP_NONE,
  2684.         FR_PART_NOUN_VERB,        JP_PROP_NONE,
  2685.         JP_EMPHASIS_MO
  2686.     ),
  2687.     JP_COMBINE("%c1も%s2",    FR_PART_COMBINE_NOUN,
  2688.         FR_PART_NOUN_ALL,        JP_PROP_NONE,
  2689.         FR_PART_NOUN_ALL,        JP_PROP_NONE,
  2690.         JP_EMPHASIS_MO
  2691.     ),
  2692.     JP_COMBINE("%1%t2",    FR_PART_COMBINE_ADJECTIVE,
  2693.         (FR_PART)(FR_PART_ADVERB_ALL | FR_PART_ADJECTIVE_ALL),    JP_PROP_NONE,
  2694.         (FR_PART)(FR_PART_ADVERB_ALL | FR_PART_ADJECTIVE_ALL),    JP_PROP_NONE,
  2695.         JP_EMPHASIS_NONE
  2696.     ),
  2697.     JP_COMBINE("%1%2",        FR_PART_COMBINE_PREPOSIT,
  2698.         FR_PART_PREPOSIT_ALL,    JP_PROP_NONE,
  2699.         FR_PART_PREPOSIT_ALL,    JP_PROP_NONE,
  2700.         JP_EMPHASIS_NONE
  2701.     ),
  2702.     // which == NULLの時のため同じ候補を並べる
  2703.     JP_COMBINE("%z1も%s2",        FR_PART_NONE,
  2704.         FR_PART_NOUN_ALL,        JP_PROP_NONE,
  2705.         FR_PART_NOUN_ALL,        JP_PROP_NONE,
  2706.         JP_EMPHASIS_MO
  2707.     )
  2708. };
  2709.  
  2710. JP_COMBINE    jpCombineOu[] = {
  2711.     JP_COMBINE("%s1か%s2",
  2712.         (FR_PART)(FR_PART_COMBINE_VERB | FR_PART_SENTENCE_ALL),
  2713.         FR_PART_SENTENCE_ALL,    JP_PROP_NONE,
  2714.         FR_PART_SENTENCE_ALL,    JP_PROP_NONE
  2715.     ),
  2716.     JP_COMBINE("%s1か%s2",        FR_PART_COMBINE_NOUN,
  2717.         FR_PART_NOUN_ALL,        JP_PROP_NONE,
  2718.         FR_PART_NOUN_ALL,        JP_PROP_NONE
  2719.     ),
  2720.     JP_COMBINE("%s1か%t2",        FR_PART_COMBINE_ADJECTIVE,
  2721.         (FR_PART)(FR_PART_ADVERB_ALL | FR_PART_ADJECTIVE_ALL),JP_PROP_NONE,
  2722.         (FR_PART)(FR_PART_ADVERB_ALL | FR_PART_ADJECTIVE_ALL),JP_PROP_NONE
  2723.     ),
  2724.     JP_COMBINE("%s1か%s2",        FR_PART_COMBINE_PREPOSIT,
  2725.         FR_PART_PREPOSIT_ALL,    JP_PROP_NONE,
  2726.         FR_PART_PREPOSIT_ALL,    JP_PROP_NONE
  2727.     ),
  2728.     // which == NULLの時のため同じ候補を並べる
  2729.     JP_COMBINE("%1か%2",        FR_PART_NONE,
  2730.         (FR_PART)~1,            JP_PROP_NONE,
  2731.         (FR_PART)~1,            JP_PROP_NONE
  2732.     ),
  2733. };
  2734.  
  2735. COMBINE    combineTable[] = {
  2736.     { ",",        TRUE,    FR_PART_COMBINE_GENERAL,    JPCOMBINE_DIC(jpCombineComma)    },
  2737.     { ":",        TRUE,    FR_PART_COMBINE_VERB,    JPCOMBINE_DIC(jpCombineCoron)    },
  2738.     { ";",        TRUE,    FR_PART_COMBINE_VERB,    JPCOMBINE_DIC(jpCombineSemicoron)    },
  2739.     { "car",    FALSE,    FR_PART_COMBINE_VERB,    JPCOMBINE_DIC(jpCombineCar)        },
  2740.     { "donc",    FALSE,    FR_PART_COMBINE_VERB,    JPCOMBINE_DIC(jpCombineDonc)    },
  2741.     { "et",        FALSE,    FR_PART_COMBINE_GENERAL,    JPCOMBINE_DIC(jpCombineEt)        },
  2742.     { "mais",    FALSE,    FR_PART_COMBINE_GENERAL,    JPCOMBINE_DIC(jpCombineMais)    },
  2743.     { "ni",        FALSE,    FR_PART_COMBINE_GENERAL,    JPCOMBINE_DIC(jpCombineNi)        },
  2744.     { "ou",        FALSE,    FR_PART_COMBINE_GENERAL,    JPCOMBINE_DIC(jpCombineOu)        },
  2745.     { "",        FALSE,    FR_PART_NONE,                NULL }        // End Code
  2746. };
  2747.  
  2748.  
  2749. // 疑問副詞
  2750. FR_PATTERN    pat_Combien1[] = {
  2751.     // Combien d'argent avez-vous?
  2752.     FR_PATTERN( CMP_TOKEN( FR_PART_INTERROGATIVE_UNCLEAR ),    3,    FR_PART_NUMETRIC_COMBIEN),
  2753.     FR_PATTERN( CMP_TOKEN( FR_PART_PREPOSIT_DE ),            4),
  2754.     FR_PATTERN( CMP_TOKEN( FR_PART_NOUN_SUBJECT),            1),
  2755.     FR_PATTERN( CMP_TOKEN( FR_PART_VERB_UNCLEAR, JP_PROP_NONE, IsQuestionLast),    2),
  2756.     FR_PATTERN( CMP_TOKEN( FR_PART_NONE) )
  2757. };
  2758. static    JP_ADVERB    jap_Combien1[] = {
  2759.     JP_ADVERB( "",    JP_KIND_NONE, JP_PROP_NONE, JP_PROP_ALL)
  2760. };
  2761. ADVERB    jpCombien1 = {
  2762.     "combien",    JPADVERB_DIC(jap_Combien1),    NULL,    NULL,
  2763. };
  2764.  
  2765. // 疑問副詞
  2766. FR_PATTERN    pat_Combien2[] = {
  2767.     // Combien avez-vous d'argen?
  2768.     FR_PATTERN( CMP_TOKEN( FR_PART_INTERROGATIVE_UNCLEAR),    3,     FR_PART_NUMETRIC_COMBIEN),
  2769.     FR_PATTERN( CMP_TOKEN( FR_PART_NOUN_SUBJECT),            1 ),
  2770.     FR_PATTERN( CMP_TOKEN( FR_PART_VERB_UNCLEAR),            2 ),
  2771.     FR_PATTERN( CMP_TOKEN( FR_PART_PREPOSIT_DE,    JP_PROP_ALL,    IsQuestionLast),    4),
  2772.     FR_PATTERN( CMP_TOKEN( FR_PART_NONE) )
  2773. };
  2774. static    JP_ADVERB    jap_Combien2[] = {
  2775.     JP_ADVERB( "",    JP_KIND_NONE, JP_PROP_NONE, JP_PROP_ALL)
  2776. };
  2777. ADVERB    jpCombien2 = {
  2778.     "combien",    JPADVERB_DIC(jap_Combien2),    NULL,    NULL
  2779. };
  2780.  
  2781. // 疑問副詞
  2782. FR_PATTERN    pat_Combien3[] = {
  2783.     // Le Combien sommes-nous?
  2784.     FR_PATTERN( CMP_TOKEN( FR_PART_ARTICLE_DEFINIT, JP_PROP_NONE,    IsTokenSingle),    3),
  2785.     FR_PATTERN( CMP_TOKEN( FR_PART_INTERROGATIVE_UNCLEAR),    4, FR_PART_NUMETRIC_COMBIEN),
  2786.     FR_PATTERN( CMP_TOKEN( FR_PART_NOUN_SUBJECT),            1,     FR_PART_NONE),
  2787.     FR_PATTERN( CMP_TOKEN( FR_PART_VERB_UNCLEAR, JP_PROP_NONE,    IsQuestionLast),    2),
  2788.     FR_PATTERN( CMP_TOKEN( FR_PART_NONE) )
  2789. };
  2790.  
  2791. // 疑問副詞
  2792. FR_PATTERN    pat_Combien4[] = {
  2793.     // Combien avez-vous?
  2794.     FR_PATTERN( CMP_TOKEN( FR_PART_INTERROGATIVE_UNCLEAR),    3,    FR_PART_INTERROGATIVE_ADVERB,    JP_PROP_TIME | JP_PROP_VOLUME),
  2795.     FR_PATTERN( CMP_TOKEN( FR_PART_NOUN_SUBJECT),            1),
  2796.     FR_PATTERN( CMP_TOKEN( FR_PART_VERB_UNCLEAR,    JP_PROP_NONE,    IsQuestionLast),    2),
  2797.     FR_PATTERN( CMP_TOKEN( FR_PART_NONE) )
  2798. };
  2799. static    JP_ADVERB    jap_Combien4[] = {
  2800.     JP_ADVERB( "どのくらい",    JP_KIND_NONE, JP_PROP_NONE, JP_PROP_ALL)
  2801. };
  2802. ADVERB    jpCombien4 = {
  2803.     "combien",    JPADVERB_DIC(jap_Combien4),    NULL,    NULL
  2804. };
  2805.  
  2806.  
  2807. // 感嘆副詞
  2808. FR_PATTERN    pat_Combien5[] = {
  2809.     // Combien de d{fauts il a!
  2810.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    3, FR_PART_NUMETRIC_EXCLAMINATION),
  2811.     FR_PATTERN( CMP_TOKEN(FR_PART_PREPOSIT_DE),                4),
  2812.     FR_PATTERN( CMP_TOKEN((FR_PART)(FR_PART_NOUN_SUBJECT | FR_PART_NOUN_GENERAL)),    1),
  2813.     FR_PATTERN( CMP_TOKEN( FR_PART_VERB_UNCLEAR,    JP_PROP_NONE,    IsExclaminationLast),    2),
  2814.     FR_PATTERN( CMP_TOKEN( FR_PART_NONE) )
  2815. };
  2816.  
  2817. JP_PROADVERB    proadvCombine[] = {
  2818.     JP_PROADVERB("", JP_KIND_NONE, JP_PROP_VOLUME, JP_PROP_ALL)
  2819. };
  2820.  
  2821. PROADVERB jpCombien5 = {
  2822.     "combien",
  2823.     FR_PART_NUMETRIC_EXCLAMINATION,
  2824.     FR_ATTRIB_NONE,
  2825.     JPPROADVERB_DIC(proadvCombine),
  2826. };
  2827.  
  2828. // 感嘆副詞
  2829. FR_PATTERN    pat_Combien6[] = {
  2830.     // Combien de temps avons-nous perdu!
  2831.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    3, FR_PART_NUMETRIC_EXCLAMINATION,    JP_PROP_NONE),
  2832.     FR_PATTERN( CMP_TOKEN(FR_PART_SPECIAL_DE),                0),
  2833.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL),                4),
  2834.     FR_PATTERN( CMP_TOKEN(FR_PART_VERB_UNCLEAR),            2),
  2835.     FR_PATTERN( CMP_TOKEN((FR_PART)(FR_PART_NOUN_SUBJECT | FR_PART_NOUN_GENERAL),    JP_PROP_ALL,    IsExclaminationLast),    1),
  2836.     FR_PATTERN( CMP_TOKEN( FR_PART_NONE) )
  2837. };
  2838.  
  2839. // 感嘆副詞
  2840. FR_PATTERN    pat_Combien7[] = {
  2841.     // Combien <que> de d{fauts il a!
  2842.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    3, FR_PART_NUMETRIC_EXCLAMINATION),
  2843.     FR_PATTERN( CMP_TOKEN(FR_PART_SPECIAL_QUE),                0),
  2844.     FR_PATTERN( CMP_TOKEN(FR_PART_PREPOSIT_DE),                4),
  2845.     FR_PATTERN( CMP_TOKEN((FR_PART)(FR_PART_NOUN_SUBJECT | FR_PART_NOUN_GENERAL)),    1),
  2846.     FR_PATTERN( CMP_TOKEN(FR_PART_VERB_UNCLEAR,    JP_PROP_NONE,    IsExclaminationLast),    2),
  2847.     FR_PATTERN( CMP_TOKEN( FR_PART_NONE) )
  2848. };
  2849.  
  2850. static FR_QUESTION    dic_Combien[] = {
  2851.     { &jpCombien1,  0, pat_Combien1 },
  2852.     { &jpCombien2,  0, pat_Combien2 },
  2853.     { &jpCombien2, -1, pat_Combien3 },
  2854.     { &jpCombien4,  0, pat_Combien4 },
  2855.     { &jpCombien5,  0, pat_Combien5 },
  2856.     { &jpCombien5,  0, pat_Combien6 },
  2857.     { &jpCombien5,  0, pat_Combien7 },
  2858. };
  2859.  
  2860. // 疑問副詞
  2861. FR_PATTERN    pat_Comment1[] = {
  2862.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    3,     FR_PART_INTERROGATIVE_ADVERB),
  2863.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL),                1),
  2864.     FR_PATTERN( CMP_TOKEN(FR_PART_VERB_ALL),                2),
  2865.     FR_PATTERN( CMP_TOKEN( FR_PART_NONE) )
  2866. };
  2867.  
  2868. BOOL
  2869. IsQuestionSentence(TOKEN *p)
  2870. {
  2871.     if(IsObjectMatch(p, FR_PART_SENTENCE_ALL)
  2872.     && !(p->frPart & FR_PART_COMBINE)    // quand S+V, 疑問文? -> quand (S+V, 疑問文)? にならないように
  2873.     && p->object2
  2874.     &&(p->object2->jpProp & JP_PROP_QUESTION))
  2875.         return(TRUE);
  2876.  
  2877.     return(FALSE);
  2878. }
  2879.  
  2880. FR_PATTERN    pat_Comment2[] = {
  2881.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    2,      FR_PART_INTERROGATIVE_ADVERB),
  2882.     FR_PATTERN( CMP_TOKEN(FR_PART_SENTENCE_ALL,    JP_PROP_NONE, IsQuestionSentence),    1),
  2883.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE))
  2884. };
  2885.  
  2886. static    JP_ADVERB    jap_Comment1[] = {
  2887.     JP_ADVERB("どのように", JP_KIND_NONE, JP_PROP_NONE, JP_PROP_ALL)
  2888. };
  2889. ADVERB jpComment1 = {
  2890.     "comment",    JPADVERB_DIC(jap_Comment1),    NULL,    NULL
  2891. };
  2892. static FR_QUESTION    dic_Comment[] = {
  2893.     { &jpComment1, 0, pat_Comment1 },
  2894.     { &jpComment1, 0, pat_Comment2 }
  2895. };
  2896.  
  2897.  
  2898. static    JP_ADVERB jap_Pourquoi1[] = {
  2899.     JP_ADVERB("なぜ", JP_KIND_NONE,    JP_PROP_NONE, JP_PROP_ALL)
  2900. };
  2901. ADVERB    jpPourquoi1 = {
  2902.     "pourquoi",    JPADVERB_DIC(jap_Pourquoi1),    NULL,    NULL
  2903. };
  2904. static FR_QUESTION    dic_Pourquoi[] = {
  2905.     { &jpPourquoi1, 0, pat_Comment1 },
  2906.     { &jpPourquoi1, 0, pat_Comment2 }
  2907.  
  2908. };
  2909.  
  2910. FR_PATTERN    pat_Quand1[] = {
  2911.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    3,      FR_PART_INTERROGATIVE_ADVERB,    JP_PROP_TIME),
  2912.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL),    1),
  2913.     FR_PATTERN( CMP_TOKEN(FR_PART_VERB_ALL,    JP_PROP_QUESTION),    2),
  2914.     FR_PATTERN( CMP_TOKEN( FR_PART_NONE) )
  2915. };
  2916.  
  2917. FR_PATTERN    pat_Quand2[] = {
  2918.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    2,      FR_PART_INTERROGATIVE_ADVERB,    JP_PROP_TIME),
  2919.     FR_PATTERN( CMP_TOKEN(FR_PART_SENTENCE_ALL, JP_PROP_NONE,    IsQuestionSentence), 1),
  2920.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE ))
  2921. };
  2922.  
  2923. static    JP_ADVERB    jap_Quand[] = {
  2924.     JP_ADVERB("いつ", JP_KIND_NONE, JP_PROP_TIME, JP_PROP_ALL)
  2925. };
  2926. ADVERB    jpQuand = {
  2927.     "quand", JPADVERB_DIC(jap_Quand),    NULL,    NULL
  2928. };
  2929.  
  2930. static FR_QUESTION    dic_Quand[] = {
  2931.     { &jpQuand, 0, pat_Quand1 },    // Quand arrive-il?
  2932.     { &jpQuand, 0, pat_Quand2 }        // Quand est-ce que il arrive?
  2933. };
  2934.  
  2935. static FR_PATTERN    pat_Quel1[] = {
  2936.     // Quelle fleure est-il?
  2937.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    3,      FR_PART_INTERROGATIVE_ADJECTIVE, JP_PROP_CONDITION),
  2938.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL),                4),
  2939.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL),                1),
  2940.     FR_PATTERN( CMP_TOKEN(FR_PART_VERB_UNCLEAR,    JP_PROP_QUESTION,    IsQuestionLast),    2),
  2941.     FR_PATTERN( CMP_TOKEN( FR_PART_NONE) )
  2942. };
  2943.  
  2944. static FR_PATTERN    pat_Quel1_1[] = {
  2945.     // Quuelle fleure est-ce que il est?
  2946.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    3,    FR_PART_INTERROGATIVE_ADJECTIVE,    JP_PROP_CONDITION),
  2947.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL),                4),
  2948.     FR_PATTERN( CMP_TOKEN(FR_PART_SPECIAL_ESTCEQUE),        0),
  2949.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL),                1),
  2950.     FR_PATTERN( CMP_TOKEN(FR_PART_VERB_UNCLEAR, JP_PROP_NONE, IsLastToken),            2, FR_PART_NONE, JP_PROP_QUESTION),
  2951.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE ))
  2952. };
  2953.  
  2954. static FR_PATTERN    pat_Quel1_2[] = {
  2955.     // Quelle heureu est-il @ votre montre?
  2956.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    3,    FR_PART_INTERROGATIVE_ADJECTIVE, JP_PROP_CONDITION),
  2957.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL),    4),
  2958.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL),    1),
  2959.     FR_PATTERN( CMP_TOKEN(FR_PART_VERB_UNCLEAR,    JP_PROP_QUESTION),    2),
  2960.     FR_PATTERN( CMP_TOKEN( FR_PART_NONE) )
  2961. };
  2962.  
  2963. static JP_ADJECTIVE jap_Quel1[] = 
  2964. {
  2965.     JP_ADJECTIVE( "何",
  2966.         JP_KIND_NONE,
  2967.         JP_PROP_CONDITION,
  2968.         JP_PROP_UNIT,
  2969.         FR_PART_NONE,
  2970.         JP_PROP_NONE,
  2971.         FR_LOCATION_FRONT 
  2972.     ),
  2973.     JP_ADJECTIVE( "どんな",
  2974.         JP_KIND_NONE,
  2975.         JP_PROP_CONDITION,
  2976.         JP_PROP_ALL,
  2977.         FR_PART_NONE,
  2978.         JP_PROP_NONE,
  2979.         FR_LOCATION_FRONT 
  2980.     )
  2981. };
  2982.  
  2983. ADJECTIVE jpQuel1 = {
  2984.     "quel",
  2985.     FR_CHANGE_NONE,
  2986.     FR_ATTRIB_NONE,
  2987.     jap_Quel1,
  2988.     sizeof(jap_Quel1)/sizeof(JP_ADJECTIVE),
  2989.     NULL,
  2990.     NULL
  2991. };
  2992.  
  2993. FR_PATTERN    pat_Quel2[] = {
  2994.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    3,     FR_PART_INTERROGATIVE_ADJECTIVE, JP_PROP_CONDITION),
  2995.     FR_PATTERN( CMP_TOKEN(FR_PART_VERB_UNCLEAR),            2,     FR_PART_NONE, JP_PROP_QUESTION),
  2996.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL,    JP_PROP_ALL,    IsQuestionLast),    1),
  2997.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE) )
  2998. };
  2999.  
  3000. static JP_ADJECTIVE jap_Quel2[] = 
  3001. {
  3002.     JP_ADJECTIVE( "どんな",
  3003.         JP_KIND_DESU,
  3004.         JP_PROP_CONDITION,
  3005.         JP_PROP_ALL,
  3006.         FR_PART_NONE,
  3007.         JP_PROP_NONE,
  3008.         FR_LOCATION_FRONT
  3009.     )
  3010. };
  3011.  
  3012. ADJECTIVE jpQuel2 = {
  3013.     "quel",
  3014.     FR_CHANGE_NONE,
  3015.     FR_ATTRIB_NONE,
  3016.     jap_Quel2,
  3017.     sizeof(jap_Quel2)/sizeof(JP_ADJECTIVE),
  3018.     NULL,
  3019.     NULL
  3020. };
  3021.  
  3022. FR_PATTERN    pat_Quel3[] = {
  3023.     // Quel homme!
  3024.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    1,     FR_PART_ADJECTIVE_EXCLAMINATION, JP_PROP_CONDITION),
  3025.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL,    JP_PROP_ALL,    IsExclaminationLast),    2),
  3026.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE))
  3027. };
  3028.  
  3029. FR_PATTERN    pat_Quel3_1[] = {
  3030.     // Quel haut homme!
  3031.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    1, 
  3032.       FR_PART_ADJECTIVE_EXCLAMINATION, JP_PROP_CONDITION),
  3033.     FR_PATTERN( CMP_TOKEN(FR_PART_ADJECTIVE_GENERAL_B),        3),
  3034.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL,    JP_PROP_ALL,    IsExclaminationLast),    2),
  3035.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE))
  3036. };
  3037.  
  3038. FR_PATTERN    pat_Quel3_2[] = {
  3039.     // Quelle chim}re est-ce que l'homme!
  3040.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    3,     FR_PART_ADJECTIVE_EXCLAMINATION, JP_PROP_CONDITION),
  3041.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL),                4),
  3042.     FR_PATTERN( CMP_TOKEN(FR_PART_SPECIAL_ESTCEQUE),        2, FR_PART_SPECIAL_EST),
  3043.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL,    JP_PROP_ALL,    IsExclaminationLast),    1),
  3044.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE))
  3045. };
  3046.  
  3047. FR_PATTERN    pat_Quel3_3[] = {
  3048.     // Quel noun, quel noun!
  3049.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    1,       FR_PART_ADJECTIVE_EXCLAMINATION, JP_PROP_CONDITION),
  3050.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL),                2),
  3051.     FR_PATTERN( CMP_TOKEN(FR_PART_COMBINE_NOUN),            3),
  3052.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL,    JP_PROP_ALL,    HasExclaminationAdjective),    4),
  3053.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE))
  3054. };
  3055.  
  3056. static JP_PROADJECTIVE jap_Quel3[] = 
  3057. {
  3058.     JP_PROADJECTIVE(    FR_PART_ADJECTIVE_EXCLAMINATION,
  3059.         "なんという",        JP_KIND_NONE,
  3060.         JP_PROP_CONDITION)
  3061. };
  3062.  
  3063. PROADJECTIVE jpQuel3 = {
  3064.     "quel",
  3065.     FR_ATTRIB_IL,
  3066.     FR_CHANGE_NONE,
  3067.     JPPROADJ_DIC(jap_Quel3),
  3068. };
  3069.  
  3070.  
  3071. FR_PATTERN    pat_Quel4[] = {        // Quel beau visage elle a!
  3072.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    3,    FR_PART_ADJECTIVE_EXCLAMINATION, JP_PROP_CONDITION),
  3073.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL),                4),
  3074.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL),                1),
  3075.     FR_PATTERN( CMP_TOKEN(FR_PART_VERB_UNCLEAR, JP_PROP_NONE, IsExclaminationLast),    2),
  3076.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE))
  3077. };
  3078.  
  3079. FR_QUESTION    dic_Quel[] = {
  3080.     { &jpQuel1,    0, pat_Quel1 },        // Quelle fleur est-ce?
  3081.     { &jpQuel1,    0, pat_Quel1_1 },    // Quelle fleure est-ce que ce est?
  3082.     { &jpQuel1,    0, pat_Quel1_2 },    // Quelle heureu est-il @ votre montre?
  3083.     { &jpQuel2,    0, pat_Quel2 },        // Quelle est cette fleur?
  3084.     { &jpQuel3,    0, pat_Quel3 },        // Quel homme!
  3085.     { &jpQuel3,    0, pat_Quel3_1 },    // Quel magnifique paysage! (形容詞を名詞の後ろに回す)
  3086.     { &jpQuel3, 0, pat_Quel3_2 },    // Quelle chim}re est-ce que l'homme!
  3087.     { &jpQuel3, 0, pat_Quel3_3 },    // Quel noun, quel noun!
  3088.     { &jpQuel3,    0, pat_Quel4 },        // Quel beau visage elle a!
  3089. };
  3090.  
  3091. FR_PATTERN    pat_QuiQui[] = {
  3092.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    1,    FR_PART_INTERROGATIVE_SUBJECT,    JP_PROP_HUMAN | JP_PROP_QUESTION),
  3093.     FR_PATTERN( CMP_TOKEN(FR_PART_VERB_ALL,        JP_PROP_NONE,    IsQuestion),    2, FR_PART_NONE, JP_PROP_QUESTION),
  3094.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE ))
  3095. };
  3096.  
  3097. JP_PRONOUN    jppro_Qui[] = {
  3098.     JP_PRONOUN(    FR_ATTRIB_ALL,        FR_ATTRIB_NONE,
  3099.         JP_PROP_ALL,        JP_PROP_NONE,
  3100.         NULL,
  3101.         "誰",                JP_EMPHASIS_NONE,    FR_PART_NOUN_SUBJECT,
  3102.         FR_ATTRIB_IL_ELLE,    JP_PROP_HUMAN,        JP_UNIT_HITO
  3103.     )
  3104. };
  3105.  
  3106. PRONOUN    jpQui =
  3107. {
  3108.     "qui",
  3109.     FR_ATTRIB_IL_ELLE,    FR_SHORT_NONE,
  3110.     JPPRONOUN_DIC(jppro_Qui)
  3111. };
  3112.  
  3113. FR_PATTERN    pat_QueQui[] = {
  3114.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_SUBJECT),    1, FR_PART_NONE, JP_PROP_THING | JP_PROP_QUESTION),
  3115.     FR_PATTERN( CMP_TOKEN(FR_PART_VERB_ALL),                2),
  3116.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE))
  3117. };
  3118.  
  3119. FR_PATTERN    pat_QuiQue1[] = {        // Qui aimez-vous?
  3120.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    3,    FR_PART_INTERROGATIVE_PRONOUN,    JP_PROP_HUMAN),
  3121.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL),                1),
  3122.     FR_PATTERN( CMP_TOKEN(FR_PART_VERB_UNCLEAR,    JP_PROP_NONE,    IsQuestion),    2),
  3123.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE ))
  3124. };
  3125.  
  3126. FR_PATTERN    pat_QuiQue2[] = {        // Qui est-ce que vous aimez?
  3127.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    3,    FR_PART_INTERROGATIVE_PRONOUN,    JP_PROP_HUMAN),
  3128.     FR_PATTERN( CMP_TOKEN(FR_PART_SPECIAL_ESTCEQUE),        0),
  3129.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL),                1),
  3130.     FR_PATTERN( CMP_TOKEN(FR_PART_VERB_UNCLEAR),            2, FR_PART_NONE, JP_PROP_QUESTION),
  3131.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE ))
  3132. };
  3133.  
  3134. FR_PATTERN    pat_Qui3[] = {
  3135.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    3,    FR_PART_INTERROGATIVE_PRONOUN,    JP_PROP_HUMAN | JP_PROP_QUESTION),
  3136.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL),                1),
  3137.     FR_PATTERN( CMP_TOKEN(FR_PART_VERB_UNCLEAR,JP_PROP_NONE,    IsTenseOrigin),    2),
  3138.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE ))
  3139. };
  3140.  
  3141. static FR_QUESTION    dic_Qui[] = {
  3142.     { &jpQui,    0, pat_QuiQui    },    // Qui chante?
  3143.     { &jpQui,    0, pat_QuiQue1    },    // Qui aimez-vous?
  3144.     { &jpQui,    0, pat_QuiQue2    },    // Qui est-ce que vous aime?
  3145.     { &jpQui,    0, pat_Qui3        },    // On ne sait pas @ qui s'adresser.
  3146. };
  3147.  
  3148. FR_PATTERN    pat_QueQue1[] = {
  3149.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    3,    FR_PART_INTERROGATIVE_PRONOUN,    JP_PROP_THING | JP_PROP_QUESTION),
  3150.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL),                1),
  3151.     FR_PATTERN( CMP_TOKEN(FR_PART_VERB_UNCLEAR,    JP_PROP_NONE,    IsQuestion),    2),
  3152.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE ))
  3153. };
  3154.  
  3155. FR_PATTERN    pat_QueQue1_2[] = {
  3156.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    3,    FR_PART_INTERROGATIVE_PRONOUN,    JP_PROP_THING | JP_PROP_MATERIAL | JP_PROP_QUESTION),
  3157.     FR_PATTERN( CMP_TOKEN(FR_PART_VERB_UNCLEAR),            2,    FR_PART_NONE, JP_PROP_QUESTION),
  3158.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_GENERAL,    JP_PROP_ALL, IsQuestionLast),    1),
  3159.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE ))
  3160. };
  3161.  
  3162. JP_PRONOUN    dic_QueQue1[] = {
  3163.     JP_PRONOUN(    FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  3164.         JP_PROP_ALL,    JP_PROP_NONE,
  3165.         NULL,
  3166.         "何",            JP_EMPHASIS_NONE,    FR_PART_NOUN_OBJECT_BOTH,
  3167.         FR_ATTRIB_NONE,    JP_PROP_THING,        JP_UNIT_TSU
  3168.     )
  3169. };
  3170.  
  3171. FR_PATTERN    pat_QueQue2[] = {
  3172.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    3, FR_PART_INTERROGATIVE_PRONOUN,    JP_PROP_THING | JP_PROP_QUESTION),
  3173.     FR_PATTERN( CMP_TOKEN(FR_PART_SPECIAL_ESTCEQUE),        0),
  3174.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL),                1),
  3175.     FR_PATTERN( CMP_TOKEN(FR_PART_VERB_UNCLEAR),            2, FR_PART_NONE, JP_PROP_QUESTION),
  3176.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE ))
  3177. };
  3178.  
  3179. PRONOUN jpQueQue1 = {
  3180.     "que que",
  3181.     FR_ATTRIB_NONE,    FR_SHORT_NONE,
  3182.     JPPRONOUN_DIC(dic_QueQue1) 
  3183. };
  3184.  
  3185. FR_PATTERN    pat_QueQue3[] = {
  3186.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    3,    FR_PART_INTERROGATIVE_PRONOUN,    JP_PROP_THING | JP_PROP_QUESTION),
  3187.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL),                1),
  3188.     FR_PATTERN( CMP_TOKEN(FR_PART_VERB_UNCLEAR,JP_PROP_NONE, IsTenseOrigin),    2),
  3189.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE ))
  3190. };
  3191.  
  3192.  
  3193. FR_PATTERN    pat_QueQue4[] = {
  3194.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    1,    FR_PART_ADVERB_EXCLAMINATION,    JP_PROP_THING | JP_PROP_QUESTION),
  3195.     FR_PATTERN( CMP_TOKEN(FR_PART_SENTENCE_ALL,    JP_PROP_ALL, IsExclaminationLast),    2),
  3196.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE ))
  3197. };
  3198.  
  3199. JP_PROADVERB    proadvQueQue[] = {
  3200.     JP_PROADVERB("何と",    JP_KIND_NONE,    JP_PROP_NONE,    JP_PROP_ALL)
  3201. };
  3202.  
  3203. PROADVERB jpQueQue3 = {
  3204.     "que que",
  3205.     FR_PART_ADVERB_EXCLAMINATION,
  3206.     FR_ATTRIB_NONE,
  3207.     JPPROADVERB_DIC(proadvQueQue)
  3208. };
  3209.  
  3210.  
  3211. // Que de fois j'ai lu ce recueil de po}mes!
  3212. FR_PATTERN    pat_QueDeFois[] = {
  3213.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    1, FR_PART_ADVERB_EXCLAMINATION,    JP_PROP_THING | JP_PROP_QUESTION),
  3214.     FR_PATTERN( CMP_TOKEN(FR_PART_PREPOSIT_DE,    "fois"),        0),
  3215.     FR_PATTERN( CMP_TOKEN(FR_PART_SENTENCE_ALL,    JP_PROP_ALL, IsExclaminationLast),    2),
  3216.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE ))
  3217. };
  3218.  
  3219. JP_PROADVERB    proadvQueDeFois[] = {
  3220.     JP_PROADVERB("何度",    JP_KIND_NONE,    JP_PROP_NONE,    JP_PROP_ALL)
  3221. };
  3222.  
  3223. PROADVERB jpQueDeFois = {
  3224.     "que de fois",
  3225.     FR_PART_ADVERB_EXCLAMINATION,
  3226.     FR_ATTRIB_NONE,
  3227.     JPPROADVERB_DIC(proadvQueDeFois)
  3228. };
  3229.  
  3230. static FR_QUESTION    dic_Que[] = {
  3231.     {    &jpQueQue1,      0, pat_QueQue1 },        // Que aimez-vous?
  3232.     {    &jpQueQue1,      0, pat_QueQue2 },        // Qu'est-ce qu'il cherche?
  3233.     {    &jpQueQue1,      0, pat_QueQue3 },        // Je ne sais que faire.
  3234.     {    &jpQueQue3,      0, pat_QueQue4 },        // Que elle est belle!
  3235.     {   &jpQueDeFois, 0, pat_QueDeFois }    // Que de fois j'ai lu ce recueil de po}mes!
  3236. };
  3237.  
  3238. static FR_QUESTION    dic_QUI_QUI[] = {
  3239.     {    &jpQui,        0, pat_QuiQui }    // Qui est-ce qui chante?
  3240. };
  3241.  
  3242. static FR_QUESTION    dic_QUE_QUI[] = {
  3243.     {    &jpQui,        0, pat_QueQui }    // Qu'est-ce qui brule?
  3244. };
  3245.  
  3246. static FR_QUESTION    dic_QUOI[] = {
  3247.     {    &jpQueQue1,    0, pat_QueQue1 },    // A quoi pensez-vous?
  3248.     {    &jpQueQue1,    0, pat_QueQue1_2 },    // En quoi est le toit? (<- En quoi est<-il> le toit?)
  3249.     {   &jpQueQue1, 0, pat_QueQue2 }    // A quoi est-ce que vous pensez?
  3250. };
  3251.  
  3252. FR_PATTERN    pat_Lequel1[] = {
  3253.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    1,    FR_PART_INTERROGATIVE_SUBJECT,    JP_PROP_HUMAN),
  3254.     FR_PATTERN( CMP_TOKEN(FR_PART_VERB_ALL),                2,    FR_PART_NONE, JP_PROP_QUESTION),
  3255.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE ))
  3256. };
  3257.  
  3258. JP_PRONOUN    dic_Lequel1[] = {
  3259.     JP_PRONOUN(    FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  3260.         JP_PROP_ALL,    JP_PROP_ALL,
  3261.         NULL,
  3262.         "どれ",            JP_EMPHASIS_NONE,    FR_PART_NOUN_SUBJECT,
  3263.         FR_ATTRIB_NONE,    JP_PROP_HUMAN,        JP_UNIT_HITO
  3264.     )
  3265. };
  3266.  
  3267. PRONOUN    jpLequel1 = {
  3268.     "lequel",
  3269.     FR_ATTRIB_NONE,    FR_SHORT_NONE,
  3270.     JPPRONOUN_DIC(dic_Lequel1)
  3271. };
  3272.  
  3273. static FR_PATTERN    pat_Lequel2[] = {
  3274.     // Lequelles des filles aimez-vous?
  3275.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    3,        FR_PART_INTERROGATIVE_ADJECTIVE,    JP_PROP_ALL | JP_PROP_QUESTION),
  3276.     FR_PATTERN( CMP_TOKEN(FR_PART_PREPOSIT_DE),                4),
  3277.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_SUBJECT),            1),
  3278.     FR_PATTERN( CMP_TOKEN(FR_PART_VERB_UNCLEAR),            2),
  3279.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE))
  3280. };
  3281. static JP_ADJECTIVE jap_lequel2[] = 
  3282. {
  3283.     JP_ADJECTIVE(
  3284.         "どの",
  3285.         JP_KIND_NONE,
  3286.         JP_PROP_ALL,
  3287.         JP_PROP_ALL,
  3288.         FR_PART_NONE,
  3289.         JP_PROP_NONE,
  3290.         FR_LOCATION_FRONT
  3291.     )
  3292. };
  3293.  
  3294. ADJECTIVE jpLequel2 = {
  3295.     "lequel",
  3296.     FR_CHANGE_NONE,
  3297.     FR_ATTRIB_NONE,
  3298.     jap_lequel2,
  3299.     sizeof(jap_lequel2)/sizeof(JP_ADJECTIVE),
  3300.     NULL,
  3301.     NULL
  3302. };
  3303.  
  3304. static FR_PATTERN    pat_Lequel3[] = {
  3305.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    3,        FR_PART_INTERROGATIVE_PRONOUN,    JP_PROP_ALL | JP_PROP_QUESTION),
  3306.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL),                1),
  3307.     FR_PATTERN( CMP_TOKEN(FR_PART_VERB_UNCLEAR),            2),
  3308.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE ))
  3309. };
  3310. JP_PRONOUN    dic_Lequel3[] = {
  3311.     JP_PRONOUN(    FR_ATTRIB_ALL,    FR_ATTRIB_NONE,
  3312.         JP_PROP_ALL,    JP_PROP_NONE,
  3313.         NULL,
  3314.         "どれ",            JP_EMPHASIS_NONE,    FR_PART_NOUN_OBJECT_BOTH,
  3315.         FR_ATTRIB_NONE,    JP_PROP_ALL,        JP_UNIT_NONE
  3316.     )
  3317. };
  3318. PRONOUN jpLequel3 = 
  3319. {
  3320.     "lequel",
  3321.     FR_ATTRIB_NONE,    FR_SHORT_NONE,
  3322.     JPPRONOUN_DIC(dic_Lequel3)
  3323. };
  3324.  
  3325. // 疑問代名詞
  3326. static FR_QUESTION    dic_Lequel[] = {
  3327.     { &jpLequel1, 0, pat_Lequel1 },    // Lequel est bell?
  3328.     { &jpLequel2, 0, pat_Lequel2 },    // Lequelles des filles aimez-vous?
  3329.     { &jpLequel3, 0, pat_Lequel3 }    // Lequel aimez-vous?
  3330. };
  3331.  
  3332. // 疑問副詞
  3333. FR_PATTERN    pat_Ou1[] = {
  3334.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    3,    FR_PART_INTERROGATIVE_ADVERB,    JP_PROP_PLACE),
  3335.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL),                1),
  3336.     FR_PATTERN( CMP_TOKEN(FR_PART_VERB_ALL),                2),
  3337.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE ))
  3338. };
  3339. FR_PATTERN    pat_Ou2[] = {
  3340.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    2,    FR_PART_INTERROGATIVE_ADVERB,    JP_PROP_PLACE),
  3341.     FR_PATTERN( CMP_TOKEN(FR_PART_SENTENCE_ALL, JP_PROP_NONE, IsQuestionSentence), 1),
  3342.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE ))
  3343. };
  3344.  
  3345. FR_PATTERN    pat_Ou3[] = {
  3346.     FR_PATTERN( CMP_TOKEN(FR_PART_INTERROGATIVE_UNCLEAR),    3, FR_PART_INTERROGATIVE_ADVERB,    JP_PROP_PLACE),
  3347.     FR_PATTERN( CMP_TOKEN(FR_PART_VERB_UNCLEAR),            2, FR_PART_NONE, JP_PROP_QUESTION),
  3348.     FR_PATTERN( CMP_TOKEN(FR_PART_NOUN_ALL,    JP_PROP_ALL,    IsLastToken),    1),
  3349.     FR_PATTERN( CMP_TOKEN(FR_PART_NONE ))
  3350. };
  3351.  
  3352. static    JP_ADVERB    jap_Ou1[] = {
  3353.     JP_ADVERB( "どこに",JP_KIND_NONE,        JP_PROP_PLACE,    JP_PROP_MOVE | JP_PROP_CONDITION),
  3354.     JP_ADVERB( "どこ",    JP_KIND_DA,            JP_PROP_PLACE,    JP_PROP_ALL ),
  3355.     JP_ADVERB( "どこ",    JP_KIND_RENTAISHI,    JP_PROP_PLACE,    JP_PROP_ALL )
  3356. };
  3357. ADVERB adverbOu1 = { "o|", JPADVERB_DIC(jap_Ou1), NULL,    NULL,};
  3358.  
  3359. static FR_QUESTION    dic_Ou[] = {
  3360.     { &adverbOu1, 0, pat_Ou1 },    // O| habitez-vous?
  3361.     { &adverbOu1, 0, pat_Ou2 }, // O| est-ce que vous habitez?
  3362.     { &adverbOu1, 0, pat_Ou3 },    // O| est votre livre? (ハイフンなし)
  3363. };
  3364.  
  3365. //
  3366. // 疑問代名詞(副詞)
  3367. //
  3368. QUESTION    questionTable[] = {
  3369.     {    "combien",        FR_ATTRIB_NONE,        (FR_PART)(FR_PART_NUMETRIC | FR_PART_OBJECT),
  3370.         "どのくらい",    JP_KIND_NONE,        JPQUESTION_DIC(dic_Combien)
  3371.     },
  3372.     {    "comment",        FR_ATTRIB_NONE,        FR_PART_ADVERB,
  3373.         "どうやって",    JP_KIND_NONE,        JPQUESTION_DIC(dic_Comment)
  3374.     },
  3375.     {    "lequel",        FR_ATTRIB_IL,        (FR_PART)(FR_PART_ADJECTIVE | FR_PART_OBJECT),
  3376.         "どの",            JP_KIND_NONE,        JPQUESTION_DIC(dic_Lequel)
  3377.     },
  3378.     {    "laquelle",        FR_ATTRIB_ELLE,        (FR_PART)(FR_PART_ADJECTIVE | FR_PART_OBJECT),
  3379.         "どの",            JP_KIND_NONE,        JPQUESTION_DIC(dic_Lequel)
  3380.     },
  3381.     {    "lesquels",        FR_ATTRIB_ILS,        (FR_PART)(FR_PART_ADJECTIVE | FR_PART_OBJECT),
  3382.         "どの",            JP_KIND_NONE,        JPQUESTION_DIC(dic_Lequel)
  3383.     },
  3384.     {    "lesquelles",    FR_ATTRIB_ELLES,    (FR_PART)(FR_PART_ADJECTIVE | FR_PART_OBJECT),
  3385.         "どの",            JP_KIND_NONE,        JPQUESTION_DIC(dic_Lequel)
  3386.     },
  3387.     {    "auquel",        FR_ATTRIB_IL,        (FR_PART)(FR_PART_ADJECTIVE | FR_PART_OBJECT),
  3388.         "どの",            JP_KIND_NONE,        JPQUESTION_DIC(dic_Lequel)
  3389.     },
  3390.     {    "auxquels",        FR_ATTRIB_ILS,        (FR_PART)(FR_PART_ADJECTIVE | FR_PART_OBJECT),
  3391.         "どの",            JP_KIND_NONE,        JPQUESTION_DIC(dic_Lequel)
  3392.     },
  3393.     {    "auxquelles",    FR_ATTRIB_ELLES,    (FR_PART)(FR_PART_ADJECTIVE | FR_PART_OBJECT),
  3394.         "どの",            JP_KIND_NONE,        JPQUESTION_DIC(dic_Lequel)
  3395.     },
  3396.     {    "duquel",        FR_ATTRIB_IL,        (FR_PART)(FR_PART_ADJECTIVE | FR_PART_OBJECT),
  3397.         "どの",            JP_KIND_NONE,        JPQUESTION_DIC(dic_Lequel)
  3398.     },
  3399.     {    "duxquels",        FR_ATTRIB_ILS,        (FR_PART)(FR_PART_ADJECTIVE | FR_PART_OBJECT),
  3400.         "どの",            JP_KIND_NONE,        JPQUESTION_DIC(dic_Lequel)
  3401.     },
  3402.     {    "duxquelles",    FR_ATTRIB_ELLES,    (FR_PART)(FR_PART_ADJECTIVE | FR_PART_OBJECT),
  3403.         "どの",            JP_KIND_NONE,        JPQUESTION_DIC(dic_Lequel)
  3404.     },
  3405.     {    "o|",            FR_ATTRIB_NONE,        (FR_PART)(FR_PART_ADVERB | FR_PART_OBJECT),
  3406.         "どこ",            JP_KIND_NONE,        JPQUESTION_DIC(dic_Ou)
  3407.     },
  3408.     {    "pourquoi",        FR_ATTRIB_NONE,        FR_PART_ADVERB,
  3409.         "なぜ",            JP_KIND_NONE,        JPQUESTION_DIC(dic_Pourquoi)
  3410.     },
  3411.     {    "quand",        FR_ATTRIB_NONE,        FR_PART_ADVERB,
  3412.         "いつ",            JP_KIND_NONE,        JPQUESTION_DIC(dic_Quand)
  3413.     },
  3414.     {    "quel",            FR_ATTRIB_IL,        (FR_PART)(FR_PART_ADJECTIVE | FR_PART_OBJECT),
  3415.         "どの",            JP_KIND_NONE,        JPQUESTION_DIC(dic_Quel)
  3416.     },
  3417.     {    "quelle",        FR_ATTRIB_ELLE,        (FR_PART)(FR_PART_ADJECTIVE | FR_PART_OBJECT),
  3418.         "どの",            JP_KIND_NONE,        JPQUESTION_DIC(dic_Quel)
  3419.     },
  3420.     {    "quels",        FR_ATTRIB_ILS,        (FR_PART)(FR_PART_ADJECTIVE | FR_PART_OBJECT),
  3421.         "どの",            JP_KIND_NONE,        JPQUESTION_DIC(dic_Quel)
  3422.     },
  3423.     {    "quelles",        FR_ATTRIB_ELLES,    (FR_PART)(FR_PART_ADJECTIVE | FR_PART_OBJECT),
  3424.         "どの",    JP_KIND_NONE,                JPQUESTION_DIC(dic_Quel)
  3425.     },
  3426.     {    "qui est-ce qui",(FR_ATTRIB)(FR_ATTRIB_IL | FR_ATTRIB_ILS),        (FR_PART)(FR_PART_NOUN | FR_PART_OBJECT),
  3427.         "誰",            JP_KIND_NONE,        JPQUESTION_DIC(dic_QUI_QUI)
  3428.     },
  3429. /*    {    "qu\'est-ce que",(FR_ATTRIB)(FR_ATTRIB_IL | FR_ATTRIB_ILS),        FR_PART_NOUN,
  3430.         "何",            JP_KIND_NONE,        JPQUESTION_DIC(dic_QUE_QUE)
  3431.     },
  3432. */    {    "qu\'est-ce qui",(FR_ATTRIB)(FR_ATTRIB_IL | FR_ATTRIB_ILS),        FR_PART_NOUN,
  3433.         "何",            JP_KIND_NONE,        JPQUESTION_DIC(dic_QUE_QUI)
  3434.     },
  3435.     {    "que",            (FR_ATTRIB)(FR_ATTRIB_IL | FR_ATTRIB_ILS),        (FR_PART)(FR_PART_NOUN | FR_PART_OBJECT),
  3436.         "何",            JP_KIND_NONE,        JPQUESTION_DIC(dic_Que)
  3437.     },
  3438.     {    "qui",            (FR_ATTRIB)(FR_ATTRIB_IL | FR_ATTRIB_ILS),        (FR_PART)(FR_PART_NOUN | FR_PART_OBJECT),
  3439.         "誰",            JP_KIND_NONE,        JPQUESTION_DIC(dic_Qui)
  3440.     },
  3441.     {    "quoi",            (FR_ATTRIB)(FR_ATTRIB_IL | FR_ATTRIB_ILS),        (FR_PART)(FR_PART_NOUN | FR_PART_OBJECT),
  3442.         "何",            JP_KIND_NONE,        JPQUESTION_DIC(dic_QUOI)
  3443.     },
  3444.     {    "",                FR_ATTRIB_NONE,        FR_PART_NONE,
  3445.         "",                JP_KIND_NONE,        NULL, 0
  3446.     }
  3447. };
  3448.  
  3449. //
  3450. // Pass1では品詞が分からない言葉
  3451. //
  3452. SPECIALWORD specialWordTable[] =
  3453. {
  3454.     { "aussi",
  3455.         TRUE,
  3456.         FR_PART_SPECIAL_AUSSI,    // 副詞(~も)、副詞(同等比較級)、接続詞
  3457.         FR_ATTRIB_NONE,
  3458.         FR_SHORT_NONE
  3459.     },
  3460.     { "ce",
  3461.         TRUE,
  3462.         FR_PART_SPECIAL_CE,        // 主語代名詞、指示形容詞
  3463.         (FR_ATTRIB)(FR_ATTRIB_BOTH_SEX | FR_ATTRIB_SINGLE),
  3464.         FR_SHORT_NONE
  3465.     },
  3466.     { "comme",
  3467.         TRUE,
  3468.         FR_PART_SPECIAL_COMME,
  3469.         FR_ATTRIB_NONE,
  3470.         FR_SHORT_NONE
  3471.     },
  3472.     { "des",
  3473.         TRUE,
  3474.         FR_PART_SPECIAL_DES,// 不定冠詞、de + les
  3475.         FR_ATTRIB_NONE,
  3476.         FR_SHORT_NONE
  3477.     },
  3478.     { "de",
  3479.         TRUE,
  3480.         FR_PART_SPECIAL_DE,    // 不定冠詞、部分冠詞、前置詞、形容詞をともなう冠詞、否定冠詞、不定詞の頭
  3481.         FR_ATTRIB_NONE,
  3482.         FR_SHORT_NONE
  3483.     },
  3484.     { "en",
  3485.         TRUE,
  3486.         FR_PART_SPECIAL_EN,        // 前置詞、中性代名詞、en + ジェロンディフ
  3487.         FR_ATTRIB_NONE,
  3488.         FR_SHORT_NONE
  3489.     },
  3490.     { "est-ce que",
  3491.         TRUE,
  3492.         FR_PART_SPECIAL_ESTCEQUE,    // 疑問文かな?
  3493.         FR_ATTRIB_NONE,
  3494.         FR_SHORT_NONE
  3495.     },
  3496.     { "fois",
  3497.         TRUE,
  3498.         FR_PART_SPECIAL_FOIS,        // 名詞、数字+fois+比較級
  3499.         FR_ATTRIB_NONE,
  3500.         FR_SHORT_NONE
  3501.     },
  3502.     { "gr[ce",
  3503.         TRUE,
  3504.         FR_PART_SPECIAL_GRACE,
  3505.         FR_ATTRIB_NONE,
  3506.         FR_SHORT_NONE
  3507.     },
  3508.     { "l@",
  3509.         FALSE,
  3510.         FR_PART_SPECIAL_LA,        // 後置指示形容詞、副詞
  3511.         FR_ATTRIB_NONE,
  3512.         FR_SHORT_NONE
  3513.     },
  3514.     { "leur",
  3515.         FALSE,
  3516.         FR_PART_SPECIAL_LEUR,    // 所有形容詞、間接目的代名詞
  3517.         (FR_ATTRIB)(FR_ATTRIB_PLURAL | FR_ATTRIB_LEVEL3),
  3518.         FR_SHORT_NONE
  3519.     },
  3520.     { "m]mes",
  3521.         TRUE,
  3522.         FR_PART_SPECIAL_MEME,
  3523.         FR_ATTRIB_PLURAL,
  3524.         FR_SHORT_NONE
  3525.     },
  3526.     { "m]me",
  3527.         TRUE,
  3528.         FR_PART_SPECIAL_MEME,
  3529.         FR_ATTRIB_SINGLE,
  3530.         FR_SHORT_NONE
  3531.     },
  3532.     { "n'importe",
  3533.         TRUE,
  3534.         FR_PART_SPECIAL_NIMPORTE,
  3535.         FR_ATTRIB_NONE,
  3536.         FR_SHORT_NONE
  3537.     },
  3538.     { "peu",
  3539.         TRUE,
  3540.         FR_PART_SPECIAL_PEU,
  3541.         FR_ATTRIB_NONE,
  3542.         FR_SHORT_NONE
  3543.     },
  3544.     // s'il venait, のようにエリジオンするので、"se/si"の前に置くこと
  3545.     { "s'",
  3546.         TRUE,
  3547.         FR_PART_SPECIAL_S,    
  3548.         FR_ATTRIB_NONE,
  3549.         FR_SHORT_NONE
  3550.     },
  3551.     { "si",
  3552.         TRUE,
  3553.         FR_PART_SPECIAL_SI,            // 接続詞, 疑問詞(~どうか)
  3554.         FR_ATTRIB_NONE,
  3555.         FR_SHORT_NONE
  3556.     },
  3557.     { "se",
  3558.         TRUE,
  3559.         FR_PART_SPECIAL_SE,        // "se" 再帰代名詞 (複数の動詞間を盥回しにされないように
  3560.         (FR_ATTRIB)(FR_ATTRIB_IL_ELLE | FR_ATTRIB_PLURAL),
  3561.         FR_SHORT_NONE                    // 付属する動詞の決まったものがFR_PART_NOUN_RECURSIVEになる
  3562.     },
  3563.     { "quand",
  3564.         TRUE,
  3565.         FR_PART_SPECIAL_QUAND,    // 疑問代名詞, 接続詞
  3566.         FR_ATTRIB_NONE,
  3567.         FR_SHORT_NONE
  3568.     },
  3569.     { "que",
  3570.         TRUE,
  3571.         FR_PART_SPECIAL_QUE,    // 疑問代名詞, 関係代名詞、ne que ~ (~のみ)
  3572.         FR_ATTRIB_NONE,
  3573.         FR_SHORT_NONE
  3574.     },
  3575.     { "qui",
  3576.         TRUE,
  3577.         FR_PART_SPECIAL_QUI,    // 疑問代名詞, 関係代名詞
  3578.         FR_ATTRIB_NONE,
  3579.         FR_SHORT_NONE
  3580.     },
  3581.     { "quoi",
  3582.         TRUE,
  3583.         FR_PART_SPECIAL_QUOI,    // 疑問代名詞, 関係代名詞
  3584.         FR_ATTRIB_NONE,
  3585.         FR_SHORT_NONE
  3586.     },
  3587.     { "o|",
  3588.         TRUE,
  3589.         FR_PART_SPECIAL_OU,        // 疑問副詞, 関係副詞
  3590.         FR_ATTRIB_NONE,
  3591.         FR_SHORT_NONE
  3592.     },
  3593.     { "lequel",
  3594.         TRUE,
  3595.         FR_PART_SPECIAL_LEQUEL,    // 疑問副詞, 関係副詞
  3596.         (FR_ATTRIB)(FR_ATTRIB_MALE | FR_ATTRIB_SINGLE),
  3597.         FR_SHORT_NONE
  3598.     },
  3599.     { "laquelle",
  3600.         TRUE,
  3601.         FR_PART_SPECIAL_LEQUEL,// 疑問副詞, 関係副詞
  3602.         (FR_ATTRIB)(FR_ATTRIB_FEMALE | FR_ATTRIB_SINGLE),
  3603.         FR_SHORT_NONE
  3604.     },
  3605.     { "lesquels",
  3606.         TRUE,
  3607.         FR_PART_SPECIAL_LEQUEL,    // 疑問副詞, 関係副詞
  3608.         (FR_ATTRIB)(FR_ATTRIB_MALE | FR_ATTRIB_PLURAL),
  3609.         FR_SHORT_NONE
  3610.     },
  3611.     { "lesquelles",
  3612.         TRUE,
  3613.         FR_PART_SPECIAL_LEQUEL,    // 疑問副詞, 関係副詞
  3614.         (FR_ATTRIB)(FR_ATTRIB_FEMALE | FR_ATTRIB_PLURAL),
  3615.         FR_SHORT_NONE
  3616.     },
  3617.     { "auquel",
  3618.         TRUE,
  3619.         FR_PART_SPECIAL_LEQUEL,    // 疑問副詞, 関係副詞
  3620.         (FR_ATTRIB)(FR_ATTRIB_MALE | FR_ATTRIB_SINGLE),
  3621.         FR_SHORT_A
  3622.     },
  3623.     { "auxquels",
  3624.         TRUE,
  3625.         FR_PART_SPECIAL_LEQUEL,    // 疑問副詞, 関係副詞
  3626.         (FR_ATTRIB)(FR_ATTRIB_MALE | FR_ATTRIB_PLURAL),
  3627.         FR_SHORT_A
  3628.     },
  3629.     { "auxquelles",
  3630.         TRUE,
  3631.         FR_PART_SPECIAL_LEQUEL,    // 疑問副詞, 関係副詞
  3632.         (FR_ATTRIB)(FR_ATTRIB_FEMALE | FR_ATTRIB_PLURAL),
  3633.         FR_SHORT_A
  3634.     },
  3635.     { "duquel",
  3636.         TRUE,
  3637.         FR_PART_SPECIAL_LEQUEL,        // 疑問副詞, 関係副詞
  3638.         (FR_ATTRIB)(FR_ATTRIB_MALE | FR_ATTRIB_SINGLE),
  3639.         FR_SHORT_DE
  3640.     },
  3641.     { "desquels",
  3642.         TRUE,
  3643.         FR_PART_SPECIAL_LEQUEL,    // 疑問副詞, 関係副詞
  3644.         (FR_ATTRIB)(FR_ATTRIB_MALE | FR_ATTRIB_PLURAL),
  3645.         FR_SHORT_DE
  3646.     },
  3647.     { "desquelles",
  3648.         TRUE,
  3649.         FR_PART_SPECIAL_LEQUEL,    // 疑問副詞, 関係副詞
  3650.         (FR_ATTRIB)(FR_ATTRIB_FEMALE | FR_ATTRIB_PLURAL),
  3651.         FR_SHORT_DE
  3652.     },
  3653.     { "plus",
  3654.         TRUE,
  3655.         FR_PART_SPECIAL_PLUS,    // 形容詞、副詞
  3656.         FR_ATTRIB_NONE,
  3657.         FR_SHORT_NONE
  3658.     },
  3659.     { "moins",    
  3660.         TRUE,
  3661.         FR_PART_SPECIAL_MOINS,    // 形容詞、副詞
  3662.         FR_ATTRIB_NONE,
  3663.         FR_SHORT_NONE
  3664.     },
  3665.     { "ni",
  3666.         FALSE,        // n'~ -> <ne>
  3667.         FR_PART_SPECIAL_NI,        // je n'ai <ni> p}re <ni> m}re.
  3668.         FR_ATTRIB_NONE,            //         無視      接続詞
  3669.         FR_SHORT_NONE
  3670.     },
  3671.     { ",",
  3672.         TRUE,
  3673.         FR_PART_SPECIAL_COMMA,        // 形容詞、副詞
  3674.         FR_ATTRIB_NONE,
  3675.         FR_SHORT_NONE
  3676.     },
  3677.     { "toutes",
  3678.         TRUE,
  3679.         FR_PART_SPECIAL_TOUT,
  3680.         FR_ATTRIB_ELLES,
  3681.         FR_SHORT_NONE
  3682.     },
  3683.     { "toute",
  3684.         TRUE,
  3685.         FR_PART_SPECIAL_TOUT,
  3686.         FR_ATTRIB_ELLE,
  3687.         FR_SHORT_NONE
  3688.     },
  3689.     { "tout",
  3690.         TRUE,
  3691.         FR_PART_SPECIAL_TOUT,
  3692.         FR_ATTRIB_IL,
  3693.         FR_SHORT_NONE
  3694.     },
  3695.     { "tous",
  3696.         TRUE,
  3697.         FR_PART_SPECIAL_TOUT,
  3698.         FR_ATTRIB_IL,
  3699.         FR_SHORT_NONE
  3700.     },
  3701.     { "seulement",
  3702.         TRUE,
  3703.         FR_PART_SPECIAL_SEULEMENT,
  3704.         FR_ATTRIB_NONE,
  3705.         FR_SHORT_NONE
  3706.     },
  3707.     { "",
  3708.         FALSE,
  3709.         FR_PART_NONE,
  3710.         FR_ATTRIB_NONE,
  3711.         FR_SHORT_NONE
  3712.     }
  3713. };
  3714.  
  3715. INTERJECTION interjectionTable[] = {
  3716.     { "oui",    "はい",        FR_PART_INDEPENDENCE_INTERJECTION,    },
  3717.     { "si",        "いいえ",    FR_PART_INDEPENDENCE_INTERJECTION,    },
  3718.     { "non",    "いいえ",    FR_PART_INDEPENDENCE_INTERJECTION,    },
  3719.     { "h{las",    "あぁ",        FR_PART_INDEPENDENCE_INTERJECTION,    },
  3720.     { "",        "",            FR_PART_NONE}            // end code
  3721. };
  3722.  
  3723. // 比較級の単語
  3724. COMPARE_WORD    compareTable[] = {
  3725.     { "meilleures",    "bon",
  3726.         FR_PART_ADJECTIVE_GENERAL,
  3727.         (FR_ATTRIB)(FR_ATTRIB_PLUS | FR_ATTRIB_ELLES),
  3728.         FR_LOCATION_FRONT,
  3729.     },
  3730.     { "meilleure",    "bon",
  3731.         FR_PART_ADJECTIVE_GENERAL,
  3732.         (FR_ATTRIB)(FR_ATTRIB_PLUS | FR_ATTRIB_ELLE),
  3733.         FR_LOCATION_FRONT,
  3734.     },
  3735.     { "meilleurs",    "bon",
  3736.         FR_PART_ADJECTIVE_GENERAL,
  3737.         (FR_ATTRIB)(FR_ATTRIB_PLUS | FR_ATTRIB_ILS),
  3738.         FR_LOCATION_FRONT,
  3739.     },
  3740.     { "meilleur",    "bon",
  3741.         FR_PART_ADJECTIVE_GENERAL,
  3742.         (FR_ATTRIB)(FR_ATTRIB_PLUS | FR_ATTRIB_IL),
  3743.     },
  3744.     { "pire",        "mauvais",        // FR_ATTRIB_PLUSは、単語の置き換え
  3745.         FR_PART_ADJECTIVE_GENERAL,
  3746.         FR_ATTRIB_PLUS,
  3747.         FR_LOCATION_FRONT,
  3748.     },
  3749.     { "moindre",    "petit",
  3750.         FR_PART_ADJECTIVE_GENERAL,
  3751.         FR_ATTRIB_PLUS,
  3752.         FR_LOCATION_FRONT,
  3753.     },
  3754.     { "mieux",    "bien",
  3755.         FR_PART_ADVERB_MIEUX,
  3756.         FR_ATTRIB_PLUS,
  3757.         FR_LOCATION_FRONT,
  3758.     },
  3759.     { "pis",    "mal",
  3760.         FR_PART_ADVERB_GENERAL,
  3761.         FR_ATTRIB_PLUS,
  3762.         FR_LOCATION_FRONT,
  3763.     },
  3764.     { "autant",    "beaucoup",
  3765.         FR_PART_ADVERB_GENERAL,
  3766.         FR_ATTRIB_AUSSI,
  3767.         FR_LOCATION_FRONT,
  3768.     },
  3769.     {    "",        "",            // end code
  3770.         FR_PART_NONE,
  3771.         FR_ATTRIB_NONE,
  3772.         FR_LOCATION_NONE
  3773.     }
  3774. };
  3775.